这很奇怪......有人知道或者可以弄清楚为什么会这样?
在过去,我能够为Excel范围分配一个公式数组(快速赋值示例:) Range("A1:A1000") = ArrayOfFormulas.与逐个细胞分配相比,它工作得很好并且非常快(非常 快)(逐个细胞的示例:Range("A" & i).Formula=ArrayOfFormula(i)在循环内.很慢!).
我现在正在使用Excel 2013,并且当尝试将存储在字符串数组中的公式分配给excel范围时,它不起作用(excel显示公式,但不是根据下图左侧部分的计算)遗憾的是,我无法检索旧代码进行比较.例如,以下代码在A1到A1000的范围内显示"= 1 + 2"而不是"3".
Sub AssignFormulas_1()
Dim i as Long
Dim FORML_ARRAY(1 To 1000, 1 To 1) As String
For i = 1 To 1000
FORML_ARRAY(i, 1) = "=1+2"
Next i
Range("A1:A1000").Formula = FORML_ARRAY '<- Don't work as formula
' It put the value!
End Sub
Run Code Online (Sandbox Code Playgroud)
但是,当我不使用公式数组时,它工作正常(所有单元格显示"3"而不是"= 1 + 2",如下图右侧所示).这里的代码:
Sub AssignFormulas_2()
Dim i as Long
Dim FORML_SINGLE As String …Run Code Online (Sandbox Code Playgroud)