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

如何在Excel VBA中将range.formula放入循环,excel,vba,Excel,Vba,首先,我想道歉,因为我不是一名程序员,但我现在被迫充当程序员,以便成功完成分配给我的任务。 我正在构建一个excel仪表板,我需要使用一些VBA编程。到目前为止,我从你那里得到的提示都很好,但目前我陷入了一个循环…:) 我试图写一个特定的公式,在软件计算的一系列单元格中总是相同的。实际上,在下面的循环中,一切都起作用: For i = 1 To LastCYMonth_RNG.Rows.count LastCYMonth_RNG.Cells(i, 1) = Application.Sum

首先,我想道歉,因为我不是一名程序员,但我现在被迫充当程序员,以便成功完成分配给我的任务。 我正在构建一个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
我无法做到的是,我想在范围内的每个单元格中写一个公式,而不是求和,比如

范围(“BX11:BX13”)。公式=“=SUM(C2:D2)”
其中的
“BX11:BX13”
必须以编程方式替换为计算范围
LastCYMonth\r\n

非常感谢


Stefano

这里有一个小的工作示例,它应该向您展示如何进行:

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

    LastCYMonth_RNG.Formula = "=sum(a1:a5)"
End Sub
1) 确保您的
LastCYMonth\u RNG
变量实际声明为名为
RANGE
的数据类型

2) 将范围设置为您需要的任何值(在我的测试中:
B2:C4
,在示例代码中,
BX11:BX13
。或您计算的任何值)。 如果您无法计算
BX11:BX13
,而是最终得到:
(第11行,第76列)
(第13行,第76列)
,您可以使用工作表函数
地址来构建它。[编辑]更正-只需使用
单元格,而不是
地址
。[/edit]


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

嗨,同上,很多人都在花时间。这对我来说很好,我解决了我的问题。我想强调一下,作为一个没有经验的用户,发生在我身上的一些奇怪的事情。这对我来说很好,我解决了我的问题。我只想强调一些奇怪的事情发生在我身上,作为一个没有经验的用户。在命令中添加真正的公式时,我遇到了1004错误,这让我很头疼。问题在于我在“”中的公式中使用的分隔符不适用于VBA,但适用于Excel……换句话说,要将公式设置为=IF($AF$5=0;0;IF($AF$5>=6;$DR11;0)),我必须再次使用“,”而不是“;”…Thnka。Stefano@stefano:是的,我一直用comas“,”。。。只开始在这个网站上看到分号“;)哦,好吧。如果我的回答对你有帮助,记得在回答的问题上做标记。。。干杯