首页 > 解决方案 > 如果在此工作簿中找不到工作表,如何找到工作表,如果单元格为空,则移动到下一个单元格,如果找不到,则退出子

问题描述

如果在此工作簿中找不到工作表,如何查找工作表,如果数组列单元格为空,则在下一个单元格中查找。我有一个工作代码,请查看它。

Public Sub customersheetpaste()
    Dim wsMain As Worksheet
    Dim wsName As Worksheet
    Dim lrowMain As Long
    Dim lrowName As Long
    Dim i As Long
    Dim j As Integer
    Dim arr As Variant
    Set wsMain = ThisWorkbook.Worksheets("Main Sheet")
    lrowMain = wsMain.Cells(Rows.Count, 1).End(xlUp).Row
    arr = [transpose(A4:A30)]  <------want to search the whole A column
    For i = 1 To UBound(arr)
        For j = 4 To lrowMain
            If wsMain.Cells(j, 1).Value = arr(i) Then
                wsMain.Range("B" & j & ":H" & j).Copy
                Set wsName = ThisWorkbook.Worksheets(arr(i)) <--- gave error if cell is empty so i gave error handler

    On Error GoTo errorhandler
                With wsName
                    .Activate
                    lrowName = .Cells(Rows.Count, 1).End(xlUp).Row
                    .Cells(lrowName + 1, 1).Select
                    .PasteSpecial xlPasteValuesAndNumberFormats

                End With
                wsMain.Activate
            End If
        Next
    Next
errorhandler:
    Application.CutCopyMode = False
    wsMain.Cells(1, 1).Select
Exit Sub

End Sub

谢谢

标签: arraysvba

解决方案


推荐阅读