我想设置一个模板,根据另一个工作表中的粘贴数据查找数据。
Private Sub GoNoGo()
Dim i As Integer
Dim OffInt As Integer
Dim Neg As Integer
Neg = -30
Dim Ret As String
Dim I3 As Cell
Dim FindValue As String
Worksheets("BF59520").Activate
Range("AE3").Activate
i = 3
OffInt = 0
Do Until ActiveCell.Offset(0, Neg).Value = ""
If ActiveCell.Offset(0, -1).Interior.Color = RGB(255, 235, 160) Then
ActiveCell.Offset(1, 0).Activate
i = i + 1
Else
ActiveCell.Value = Application.WorksheetFunction.VLookup(ActiveCell.Offset(0, -18), Worksheets("Go No Go").Range("B2:O180"), 4, False)
ActiveCell.Offset(1, 0).Activate
i = i + 1
End If
OffInt = OffInt + 1
Loop
End Sub
当循环到达VLOOKUP行时,代码返回运行时错误错误' 1004':
无法获取workheetFunction类的VLOOKUP属性。
答案 0 :(得分:0)
通常,当您在Worksheet函数上获得该错误时,这意味着函数本身已返回错误。确保你传递的是正确的值。如果您不能保证从函数中获得正确的值,那么您可以尝试使用On Error,如此
On Error Resume Next
Application.WorksheetFunction.VLookup(ActiveCell.Offset(0, -18), Worksheets("Go No Go").Range("B2:O180"), 4, False)
On Error GoTo 0
或者您可以在评估语句中捕获错误,如此
ActiveCell.Value = Evaluate("=IFERROR(VLOOKUP(" & ActiveCell.Offset(0,-18) & ", 'Go No Go'!B2:O180, 4, FALSE),0)")
当vlookup失败时,第一个将导致ActiveCell没有变化,第二个允许你将默认值设置为'IFERROR'函数的第二个参数。
希望这有帮助!