2017-08-28 7 views
0

私はVbaの初心者です。列をスキップするために数式にループ数を導入する方法

Sub addbdh() 
Dim i As Integer 
Dim n As Integer 

Range("A3").Select 
Range(Selection, Selection.End(xlToRight)).Select 

n = Selection.Count 

For i = 1 To n 
Cells(3, i * 2 - 1).Formula = "=BDH(B" & i * 2 - 1 & ",A1 ,B1 ,Today())" 
Next i 
End Sub 

Initallyそれが3行目の列式を導入することを目的としたが、途中で各タイムループラウンドつの列をスキップ:私は、次のコードを持っています。

私のコードは、今説明したコンセプトに対応していますが、転置されています(行をスキップしてB列の行に式を導入すること)。

列がアルファベット文字で命名されているので、私は私が命令内の行で最初にやったとして列をスキップする要素エン式内ループに導入することができますかわからない:

Cells(3, i * 2 - 1).Formula = "=BDH(B" & i * 2 - 1 & ",A1 ,B1 ,Today())"

具体的には、"=BDH(B" & i * 2 - 1 & ",A1 ,B1 ,Today())"を変換する方法がわからないため、1つの行ではなく1つの列をスキップします。

誰か手伝ってもらえますか?式でのインデックス付きの値を使用した場合の感謝の

ロットは

+0

iの3番目の値ごとに何かを作るには、 'For i = 1 to n 'の後に' Step = 3'を使います。 – Luuklag

+0

問題はiが整数として定義された要素であり、Excelの列にアルファベットの文字が付いているので、列をスキップしたい場合、ループが各セルの名前に基づいていることに注意してくださいループを適用したい場合、問題はループがラウンドするたびに各セルの名前を変更して列をスキップする方法です。 – Mauro

+0

セル(行、列)を使用してセルを定義します。ここでは、行と列の両方が整数です。 – Luuklag

答えて

0

、時々A1スタイルよりもR1C1式のスタイルを使用する方が簡単です。あなたのケースで

、あなたR1C1式は次のようになります。最初のパラメータ「現在のセルと同じ行のセル、(2 * I-1)列目」のための手段

Cells(3, i * 2 - 1).FormulaR1C1 = "=BDH(RC" & i * 2 - 1 & ",R1C1 ,R1C2 ,Today())" 

2番目の「1列目のセル(A1ともいう)」、最後の「1列目のセル2(別名B1)」のセル)を指定します。

+0

これはOKですが、式のRCに最初のRの後に1を加えなければなりませんでした。 'Cells(3、i * 2 - 1).FormulaR1C1 =" = BDH(R1C "&i * 2 - 1& "、R1C1、R1C2、Today())" '' – Mauro

関連する問題