2017-08-28 94 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