2017-08-28 93 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行的列,但跳過一列的公式循環輪。

Neverthless,我意識到自己的代碼適用於剛剛描述的,但轉置(跳過行引入B中的列的行式)的概念。

由於列命名爲字母,我不知道我怎麼能在一個循環中引入公式中的連接元素跳過列,因爲我已經在做第一次使用在指令行:

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

更具體地說,我不知道該怎麼"=BDH(B" & i * 2 - 1 & ",A1 ,B1 ,Today())"轉換,以便每次跳過而不是一行一列。

可能有人幫助我嗎?感謝

+0

使用'步驟= 3'後'對於i = 1到N'做出對我的每3個有價值的東西。 – Luuklag

+0

問題是,我是一個定義爲整數的元素,並且由於Excel列是用字母命名的,所以如果我想跳過列,它是沒有用的,請注意我的循環基於每個單元格的名稱I想要應用循環,問題是如何更改每個單元格的名稱以在每次循環循環時跳過列。 – Mauro

+0

使用單元格(行,列)來定義單元格,其中行和列都是整數。 – Luuklag

回答

0

當公式中使用索引值的

地塊,有時更易於使用R1C1式風格比A1樣式。

在你的情況下,你的R1C1公式可以是:

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

,這意味着第一個參數「單元相同的行作爲當前小區中,(2 * I-1)列」,用於第一行第一列(aka A1)中的第二個「單元格」和第一行第二列(aka B1)中的最後一個「單元格」。

+0

這是確定的,但我不得不添加一個1中的式RC第一R之後,這樣的: '細胞(3,I * 2 - 1).FormulaR1C1 = 「= BDH(R1C」 &我* 2 - 1&「,R1C1,R1C2,Today())」''' – Mauro