1

すべてのセルが終了するまで、Vlookup マクロ =VLOOKUP(E2,[gpic.xlsx]Sheet1!$A:$D,4,FALSE) を使用する必要があります。レンジの代わりにロングを使用する方法がわかりません。範囲を使用すると、予測が間違っていて、すべてを自動化したいためにオーバーすることがあります。誰か助けてもらえますか? E2 の代わりに、それらすべてを通過する必要がありますが、マクロに組み込みたいと考えています。

Sub Work()
Dim LR As Long
Dim row As String
row = "E2"
row = "E" & x
LR = Range("E" & Rows.Count).End(xlUp).row
Range(Columns(6), Columns(7)).Select
For x = 0 To 2
row = "E" & x
Range("F2:F" & LR).Formula = "=VLOOKUP(" & row & ",[gpic.xlsx]Sheet1!$A:$D,4,FALSE)"
Next




End Sub
4

2 に答える 2

2

JDuarteDJ の発言をさらに発展させると、変数を使用して行をループするのがおそらく最適です。ただし、行数を誤って予測する場合があると述べました。あなたが使用することができます:

rowCount = ActiveSheet.Range("F" & Rows.Count).End(xlUp).Row

これにより、列Fに何かが含まれている行の数が表示されます。次に、JDuarteDJが言及したのと同じループを実行できます

×=2~20

あなたが使用することができます

For x = 2 to rowCount '
 前述のすべてのことと、必要なことをすべて実行します。

お役に立てれば

--------------UPDATE ---------------------------
編集の問題は、私が思うに、 forループ内で、次を使用しています:

Range("F2:F" & LR).FormulaR1C1 = "=VLOOKUP(&row&,[gpic.xlsx]Sheet1!$A:$D,4,FALSE)"

これは、正しい回数反復していません。私の意見でやりたいことは、次のように 2 から行数までループすることです。

For x = 2 to LR
Range("F2:F" & X).FormulaR1C1 = "=VLOOKUP(&row&,[gpic.xlsx]Sheet1!$A:$D,4,FALSE)"

于 2013-07-26T14:39:29.457 に答える
0

E2 を変数に置き換えます。

文字列行として薄暗い
行 = "E2"

次に、ループを使用してすべての E2、E3、E4 などを反復処理します。

x=2 から 20 の場合、
row = "E" & x
formula = "VLOOKUP("&row&",[gpic.xlsx]Sheet1!$A:$D,4,FALSE)"
... ここでコードを使用します。 .

私のVBは少しさびているかもしれません:/
これが役立つことを願っています

于 2013-07-26T14:20:08.017 に答える