公式数组中的VBA和循环

如果我已经为某些块定义了命名范围 – 比如说,名为Apple1,Apple2,Apple3,Apple4的2乘2块

我想要创build一个总计块是上面的总和(在Excel中,公式数组公式将是{Apple1 + Apple2 + Apple3 + Apple4})使用FormulaArray命令 – 我在我的思想过程的正确的路线下面?

For i = 1 to 2 range("Total").formulaarray = "=" & "Apple" & i next i 

我不明白你为什么需要FormulaArray这样的任务,但你可以使用这个:

 Sub test() Dim i%, Apples$ For i = 1 To 4 Apples = Apples & "+SUM(Apple" & i & ")" Next i [Total].FormulaArray = "=" & Mid(Apples, 2, Len(Apples)) End Sub 

在这里输入图像说明

经过我的实验,我发现FormulaArray的行为更复杂。

 sub test() dim i as long, Apples1 as variant, Apples2 as variant for i = 1 to 3 Apples1 = Apples1 & "Apple" & i & "+" Apples2 = Apples2 & "Apple" & i & "," next i range("total1").FormulaArray = "=sum(" & left(Apples1, len(Apples1)-1) & ")" range("total2").FormulaArray = "=sum(" & Apples2 & ")" range("total3").FormulaArray = "=" & left(Apples1, len(Apples1)-1) end sub 

结果是 在这里输入图像说明

如果Apple1,Apple2或Apple3中的任何单元格都是string,则结果是 在这里输入图像说明