从工作表A到工作表的Vlookup期间出错

时间:2016-11-03 15:45:29

标签: excel vba excel-vba

非常感谢您对此的帮助。我正在尝试从工作表A到工作表B的vlookup,我确实在这个论坛中找到了示例代码,但突然出现错误 - 运行时错误'1004':object_Worksheet的方法'范围'失败

Sub Sample()
    Dim wbThis As Workbook, wbThat As Workbook
    Dim wsThis As Worksheet, wsThat As Worksheet
    Dim aCell As Range

    Set wbThis = ThisWorkbook
    '~~> Let's say this is the sheet where you want the result
    '~~> Change name as applicable
    Set wsThis = wbThis.Sheets("Sheet1")

    '~~> Change path as applicable
    Set wbThat = Workbooks.Open("C:\Users\Fahmi\Desktop\VBA TESTING\Template.xlsx")
    Set wsThat = wbThat.Sheets("CtyAccesCode")

    With wsThis
        For Each aCell In .Range("H2:H" & LastRow)


            If Len(Trim(.Range("AD" & aCell.Row).Value)) <> 0 Then
                .Cells(aCell.Row, 28) = Application.WorksheetFunction.VLookup( _
                                        aCell.Value, wsThat.Range("A1:B13"), 2, 0)
            End If
        Next aCell
    End With

    wbThat.Close (False)
End Sub

以及此行的错误

and the error on this line

提前感谢!

1 个答案:

答案 0 :(得分:0)

你从未宣布过lastRow。有更多优雅和防弹的方法,但快速破解你的努力可能是这样的:

Dim lastRow As Integer
lastRow = wsThis.UsedRange.Rows.Count

您可以在此处找到更多防弹查找实际最后一行的方法:

How can I find last row that contains data in the Excel sheet with a macro?

但是,根据工作表的内容,您可能会采用更简单或更透明的方式。