とインデックスとの一致は、私は私のシートの最初の列に、この式を有する:エクセル:VBA
=IFERROR(INDEX(Plan2!$A$1:$K$20;MATCH(Plan3!B2;Plan2!$B$1:$B$20;0);MATCH(Plan3!$A$1;Plan2!$A$1:$K$1;0));"")
そして、それは私が欲しいもののために完璧にフィット:プラン2に見上げる(私databse )を使用して、Plan3の列Bの情報を取得します。
私が知りたいのは、これを同じことをするVBAに変換することです。私が実行しようとすると
Sub AlocSubs()
Dim i As Long
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Set ws1 = Sheets("Plan2")
Set ws2 = Sheets("Plan3")
For i = 2 To 20
ws2.Cells(i, 1).Value = Application.WorksheetFunction.Index(ws1.Range("A1:K20"), .match(ws2.Range("B2"), ws1.Range("B1:B20"), 0), .match(ws2.Range("A1"), ws1.Range("A1:K1"), 0))
Next i
End Sub
は、私がメッセージを取得::
Compilation error: Reference is not valid.
をそして私は、この行がハイライトされ得る:
Sub AlocSubs()
これは、これは私がこれまで試したものですVBAで式を変換しようとすると、コードが最初に実行されるので、何がうまくいかないのか分かりません。
ご意見をお寄せください。
'.match(...)'とは何ですか?それを呼び出す適切な方法ではないAFAIK ... – BruceWayne
@BruceWayne実際にこの質問では、VBAで式を使用する正しい方法であれば、私はそれを理解しようとしていました。 .. – paulinhax