インデックス/マッチ関数を使用して、あるシートから別のシートにデータを一致させて引き出すマクロを作成しようとしています。私はExcelでそれを行い、それは完璧に動作します。しかし、レポートは「動的」(サイズ変更)なので、コードの最後の行も動的である必要があります。 以下は私が行ったことです。私は今、 "タイプミスマッチ"のエラーが出ています(私は、1つのエラーの解決策が見つかるたびに "今"を強調しています)。VBAでインデックス/マッチを行うにはどうすればよいですか?
Dim prosheet As Worksheet
Dim prosheet2 As Worksheet
Set prosheet2 = ThisWorkbook.Sheets("shipstation")
Set prosheet = ThisWorkbook.Sheets("macrotestfb")
lr1 = prosheet.Cells(Rows.Count, 1).End(xlUp).Row
lr2 = prosheet2.Cells(Rows.Count, 1).End(xlUp).Row
lrship = prosheet.Cells(Rows.Count, 10).End(xlUp).Row
lrindex = prosheet2.Cells(Rows.Column, 14).End(xlUp).Row
'CALCULATE SHIPPING COST
For x = prosheet.range("j6") To lrship
x = Application.WorksheetFunction.Index(prosheet2.range("a1:n" & lrindex), Application.WorksheetFunction.Match(prosheet.range("a6:a" & lr1), prosheet2.range("a1:a" & lr2), 0), prosheet2.range("f2"))
Next x
こんにちは、最初のおかげで...コードはほぼ完璧に動作します。私はいくつかのマイナーな適応を行ったと素晴らしい実行...今私は別の問題を発見した...インデックス関数は、いくつかのレコードで動作しません、私はこのエラーメッセージが表示されます... "ワークシートのインデックスプロパティを取得することができません関数のクラス "...私はすべてのインスタンスでコードが動作しないことがわかった場合、ルックアップ値は数字と文字を含んでいます。 12365E ...変数xとyのデータ型を変更する必要がありますか? – DHI
"shipstation"シート上のF2の値は何ですか?コードが停止したときのtの値は何ですか?あなたは何を変えたのですか?これは結果に影響する可能性があるためです。 –
...私が作った「マイナーな適応」の1つです。インデックス関数の( "f2")の値を( "f"&t)に変更します。そうでなければ常にf2のみを与えます。変更後、( "f"&t)の値は77で、tも77です。 – DHI