注文を含む Excel スプレッドシートの VBA コードに問題があります。各行には、ワークブックの別のシートに含まれる顧客の電子メール アドレスを検索するために使用する顧客番号が含まれています。
vlookup コードは 1 つのセルに対しては正常に機能しますが、スプレッドシートのすべての行をループしようとすると問題が発生します。単一セルの Excel 式は、たとえば、
=VLOOKUP(B2,Customers!A2:D1000,4,FALSE)
このために生成される VBA コードは次のとおりです。
Range("M2").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-11],Customers!RC[-12]:R[999]C[-9],4,FALSE)"
開始セルを選択した後、これをループに組み込むと、次のようになります。
Cells(2, 13).Select
Do
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-11],Customers!RC[-12]:R[999]C[-9],4,FALSE)"
ActiveCell.Offset(1, 0).Select
Loop Until IsEmpty(ActiveCell.Offset(0, -10))
問題は、値が検索されているセルに関連するのではなく、「テーブル配列」を固定したいということです。しかし、私はそれを行う方法をまったく理解できません。コードを次のように変更すると、実行時エラーが発生します。
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-11],Customers!A2:D1000,4,FALSE)"
範囲変数を.addressで使用して、引用、引用解除、範囲変数の設定を試みました...誰か助けてもらえますか?
どうもありがとう。