非常感谢您对此的帮助。我正在尝试从工作表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
以及此行的错误
提前感谢!
答案 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?
但是,根据工作表的内容,您可能会采用更简单或更透明的方式。