Excel:如何将多个公式加载回范围

时间:2015-11-02 02:08:43

标签: excel vba excel-formula range

大多数人都知道您应该计算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的值。

以前有没有人经历过这个?任何修复?

1 个答案:

答案 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来处理数组的大小而不是静态范围

,使其更具动态性