私は、これを動作させるために私の全体的なコードを書き直すために想像できるすべてのスレッドを読むために全力を尽くしました。Excel VBA - データをコピーしていないVLookup
状況:私はsheet2(スコア)のデータとsheet3(コメント)のデータを持っています。各シートには、列Aにチケット番号があります。スコアシートには、すべての可能なチケット番号が含まれています。 Commentsシートにはその合計のサブセットのみが含まれています(約50%)。コメントシートには2がありますが、一般的な既存の行(チケット番号)と一致するように検索する必要があります。そして、コメント列B(2)の値を取り出して列E(5)に貼り付けます。これはCSATサマリーシートであり、スコアシートのCol ADの内容を持っています。
以下は現在のコードです。私はVLOOKUPを削除し、ちょうど(例えば、「A」のような)変数を入れた場合、それは確かに私が行方不明ですない何
scores.UsedRange.Columns.Copy
csatSum.Range("A1").Insert
csatSum.Activate
Set rng = csatSum.Range("A2:A" & lastRow)
rngLastRow = Comments.Range("B2:B" & lastRow)
For i = 2 To lastRow
On Error Resume Next
csatSum.Cells(i, 5) = WorksheetFunction.VLookup(rng, Comments.Range(rngLastRow), 2, False)
On Error GoTo 0
Next i
...一つ一つのライン上にあるものの、正しい欄にペーストAを行います。明らかに、それはVLookup自身の中にあるものです。しかし、私は迷っています。
VLOOKUP関数の最初の引数は、単一の値でなければなりません。おそらく 'csatSum.Cells(i、1)'でしょう。 –
私はそれが 'rngLastRow = Comments.Range(" B1:B "&lastRow)'であるべきだと思います。 VLookupの2番目のパラメータはルックアップテーブルでなければなりません。 –
'rngLastRow = Comments.Range(" B2:B "&lastRow)'は配列を返すので、 'Comment.Range(rngLastRow)'は動作しません。それを範囲として設定し、それを呼び出す必要があります。 –