大多数人都知道您应该计算VBA中的所有数字并立即将它们全部加载到Excel中以减少电子表格访问次数并提高速度。通常是Range(" a1:a10")= myArray。
好吧,我想这样做,但是对于公式而不是值。
Sub myTest()
Dim myFormulas() As String
ReDim myFormulas(1 To 5)
myFormulas(1) = "Abc"
myFormulas(2) = "Ac"
myFormulas(3) = "Ab"
myFormulas(4) = "bc"
myFormulas(5) = "=A1"
Range("F232:J232").Formula = myFormulas
End Sub
这"几乎可以工作"。在J232中,它显示text = A1而不是A1的值。然后我需要进入公式并按=输入= A1然后转换为A1的值。
以前有没有人经历过这个?任何修复?
答案 0 :(得分:0)
这是因为你把它设置为一个字符串,试试这个:
Sub myTest()
Dim myFormulas() As Variant
myFormulas = Array("Abc", "Ac", "Ab", "bc", "=A1")
Range("F232").Resize(1, UBound(myFormulas) + 1).Formula = myFormulas
End Sub
还使用resize来处理数组的大小而不是静态范围
,使其更具动态性