如何将range.formula放入Excel VBA中的循环中

时间:2015-03-10 18:03:52

标签: excel-vba vba excel

首先,我想道歉,因为我不是程序员,但我现在被迫采取行动,以便顺利完成分配给我的任务。 我正在构建一个excel仪表板,我需要使用一些VBA编程。到目前为止所有的好处都是我从你那里获得的暗示,但目前我陷入了一个循环...:))

我正在尝试编写一个特定的公式,在软件计算的单元格范围内始终相同。实际上在下面的循环中一切正常:

For i = 1 To LastCYMonth_RNG.Rows.count
    LastCYMonth_RNG.Cells(i, 1) = Application.Sum(YTDCYAll_RNG.Rows(i)) - Application.Sum(TotalCYMonth_RNG.Rows(i)) - Application.Sum(MTDCYMonth_RNG.Rows(i))
 Next i

我无法做到的不是制作一个总和我想在该范围的每个单元格中编写一个公式.....如

Range("BX11:BX13").Formula = "=SUM(C2:D2)"其中"BX11:BX13"必须以编程方式替换为计算范围LastCYMonth_RNG ......不知道可能出现的语法或错误。

非常感谢。

斯特凡诺

1 个答案:

答案 0 :(得分:0)

这是一个小工作样本,应该告诉你如何去做:

Sub test()
   Dim LastCYMonth_RNG As Range
    Set LastCYMonth_RNG = Range("B2:c4")

    LastCYMonth_RNG.Formula = "=sum(a1:a5)"
End Sub

1)确保您的LastCYMonth_RNG变量实际上被声明为名为RANGE的数据类型。

2)将您的范围设置为您需要的范围(在我的测试中:B2:C4,您的示例代码,BX11:BX13 ..或您计算的任何其他内容。  如果您无法计算BX11:BX13,而是最终得到:( row 11, col 76 )( row 13, col 76 ),则可以使用工作表函数ADDRESS来构建它。 [edit]更正 - 只需使用CELLS,而不是ADDRESS ... [/ edit]

3)一旦你拥有了它,你就可以把它塞进你的公式电话中。