VBA - Arrayformula 存储为数组变量的范围

VBA - Arrayformula 存储为数组变量的范围

我需要将公式数组应用于电子表格中的动态范围,对于固定大小的范围,可以使用例如:

Selection.Offset(2, 0).FormulaArray = "=(SUM((Exx:Eyy-Fxx:Fyy)^2)/X)^.5"

但是在我的所有电子表格中,范围并没有固定的大小和位置,因此我首先选择它们,然后将它们存储为维度 1 的数组,然后重新调整为长度 N。

这些数组将被命名,例如,范围 Exx:Eyy 命名为 A,范围 Fxx:Fyy 命名为 B,因此,当我想要应用上述相同的数组公式时,我会收到以下错误Compile Error: type mismatch when using the array variables instead of the explicit ranges

Selection.Offset(2, 0).FormulaArray = "=(SUM((" & A & "-" & B & ")^2)/X)^.5"

如果我不使用引号和与号,当然,就会出现错误name

我也尝试使用evaluate等式右侧的属性并且它可以无错误地工作,但是这样我得到的值与使用公式数组得到的值不一样:/

有人可以帮我一下吗?

答案1

从你的问题中不清楚你的数组字符串/范围的数据类型是什么?似乎 excel

  • 不知道您指的是哪个工作表(如果您的引用存储为字符串,则也要将工作表添加到地址(例如 sheet1!a1:b1))
  • 要么 excel 误解了你的数据(如果你的引用存储在范围内,请尝试使用 A.address 而不是仅仅使用 A)

相关内容