Excel:如何将多个公式加载回一个范围
Excel: how to load multiple formulas back to a 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
这个"almost works"。在 J232 中,它显示文本 =A1 而不是 A1 的值。然后我需要进入公式并按回车键输入 =A1,然后转换为 A1 的值。
有没有人遇到过这种情况?任何修复?
因为你设置的是字符串,试试这个:
Sub myTest()
Dim myFormulas() As Variant
myFormulas = Array("Abc", "Ac", "Ab", "bc", "=A1")
Range("F232").Resize(1, UBound(myFormulas) + 1).Formula = myFormulas
End Sub
还使用调整大小来计算数组的大小而不是静态范围,使其更加动态
大多数人都知道,您应该计算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
这个"almost works"。在 J232 中,它显示文本 =A1 而不是 A1 的值。然后我需要进入公式并按回车键输入 =A1,然后转换为 A1 的值。
有没有人遇到过这种情况?任何修复?
因为你设置的是字符串,试试这个:
Sub myTest()
Dim myFormulas() As Variant
myFormulas = Array("Abc", "Ac", "Ab", "bc", "=A1")
Range("F232").Resize(1, UBound(myFormulas) + 1).Formula = myFormulas
End Sub
还使用调整大小来计算数组的大小而不是静态范围,使其更加动态