簡體   English   中英

運行時錯誤'438'

[英]Run0time error '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)
'                                                                              ^^^^^^

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM