私はVBAを初めて使い、数日前に学習を始めました。私はExcelのVBAには、このインデックス/マッチ機能を変換しようとしているvbaの1つのファイルから別のファイルにインデックス一致を使用する方法
は
=INDEX('[039.xls]Sales Ledger Outstanding Invoic'!$D:$D,MATCH(D2,'[039.xls]Sales Ledger Outstanding Invoic'!$E:$E,0))
これは私がこれまでに出てくるものです:
Dim E As Long, f As Long, g As Long
Set tempWB = Workbooks.Open("C:\EDI\SLT report\039.xls", True, True).Worksheets("Sales Ledger Outstanding Invoic").Range("D2:D100")
Set dataWB = Workbooks.Open("C:\EDI\SLT report\039.xls", True, True).Worksheets("Sales Ledger Outstanding Invoic").Range("E2:E100")
E = Cells(Rows.Count, "E").End(xlUp).Row
g = 1
For f = 2 To E
If IsEmpty(Cells(f, "D")) = False Then
Cells(f, "D") = Application.WorksheetFunction.Index(tempWB, Application.WorksheetFunction.Match(A2, dataWB, 0))
g = g + 1
End If
Next f
しかし、このコードは私に
を与えます下付き文字範囲外
誰かが私にそれを解決するのを手伝ってもらえますか?おかげ
エラーがスローされますどのようなライン?ワークシート名に 'Invoic'に' e'がないことに注意してください。 – BruceWayne
@BruceWayne:この行は、 'Cells(f、 "D")= Application.WorksheetFunction.Index(tempWB、Application.WorksheetFunction.Match(A2、dataWB 、0)) '。 –