私のワークブックに複数のデータシートが含まれている大規模なデータセットで作業していて、シート「SAP」から取得したシート「URR」の列を使用して関連するデータをVlookupしたい引く"。したがって、SAP Pullはすべてのデータを含むマスターシートであり、URRには関連するデータの列が含まれています。関連するデータの列をSAP Pullにコピーし、vlookupループを作成して列の各行に対応するデータを見つけようとします。問題は、object'_WorksheetのMethod 'range'というエラーがスローされ続けることです。なぜ私はこの問題が続くのか混乱しているので、ここに私のコードです。VBA Vlookupループの問題
Dim wsThis As Worksheet
Dim aCell As Range
Sheets("URR").Columns(1).copy Destination:=Sheets("SAP Pull").Columns(22)
Set wsThis = Sheets("SAP Pull")
With wsThis
For Each aCell In .Range("V2:V")
.Cells(aCell.Row, 23) = Application.WorksheetFunction.VLookup(_
aCell.Value, wsThat.Range("A2:D3500"), False)
Next aCell
End With
End Sub
ありがとうございます! 3番目の基準が私の心をちょっとスリップしたように見えます。さらに、wsThatが自分のコードに存在しないことを認識しました。シートの切り替えに使用されましたが、問題を解決するためにすべてのデータを1つのシートに移動しただけで、現在はwsThisです。残念ながら、このエラーはFor Each aCell In .Range( "V2:V")の行に続き、なぜ私は不明です。追加の編集が役立ちます!再度、感謝します。 – Shin
@Shin編集を参照してください。 '65000'を最大の範囲に変更することができます。 –
こんにちは、私はその問題を理解しています、V2:Vは、最大範囲が可変であるため、次の行に値が見つからなくなるまで、列全体にわたり私を連れて行くことを望んでいました。さらに、何らかの理由でvlookupが約10のインスタンスに対して「見つからない」という結果を返しています。なぜなら、それらがA2:D3500の範囲内にあるためです。 – Shin