运行时间错误“438”
我有下面的行接收一个“对象不支持属性或方法的错误,但我没有看到任何问题。
Dim compliance As Worksheet Dim report As Worksheet Dim completeList As Worksheet Sub getcompliance() Dim i As Long Dim n As Long Dim Source As String Set compliance = ActiveWorkbook.Worksheets("Compliance") Set report = ActiveWorkbook.Worksheets("Report") For i = 3 To report.UsedRange.Rows.Count For n = 2 To compliance.UsedRange.Rows.Count report(i, 19) = Application.WorksheetFunction.VLookup(report("i, 3"), compliance("A1:AC2400"), 29, False) Next n Next i End Sub
你的线说
report(i, 19) = Application.WorksheetFunction.VLookup(report("i, 3"), compliance("A1:AC2400"), 29, False)
应该可能会说
report.Cells(i, 19) = Application.WorksheetFunction.VLookup(report.Cells(i, 3), compliance.Range("A1:AC2400"), 29, False)
但是,如果是这样,你为什么在For n
循环中做这个?
也许你的意思是你的代码是:
Dim compliance As Worksheet Dim report As Worksheet Dim completeList As Worksheet Sub getcompliance() Dim i As Long Set compliance = ActiveWorkbook.Worksheets("Compliance") Set report = ActiveWorkbook.Worksheets("Report") For i = 3 To report.UsedRange.Rows.Count report.Cells(i, 19) = Application.WorksheetFunction.VLookup(report.Cells(i, 3), compliance.Range("A1:AC" & compliance.UsedRange.Rows.Count), 29, False) 'Or, simply using the full columns: 'report.Cells(i, 19) = Application.WorksheetFunction.VLookup(report.Cells(i, 3), compliance.Range("A:AC"), 29, False) Next i End Sub
' vvvvv vvvvvvvvvvvvv report.Cells(i, 19) = WorksheetFunction.VLookup(report.Cells(i, 3), compliance.Range("A1:AC2400"), 29, False) ' ^^^^^^