通过VBA的数组公式

我想通过VBA编写一个数组公式,但得到一个错误“无法设置范围类的FormulaArray属性”。 我已经尝试了'Range.FormulaArray'和'.Range.selection.FormulaArray',但没有任何作品。 感谢您帮助我。

Worksheets("sheet1").Range("Table2[[" & Me.cboSec.value & " Row Score Max]]").FormulaArray = formulae 

这个最小的片段适合我:

 Worksheets("sheet1").Range("A1:B4").FormulaArray = "=AVERAGE(C1:C5)" 

这将从A1到B4的单元格显示单元格C1到C5中的数字的平均值,并绑定到公式数组。

但是这个问题提到了一个Table的结构化引用。 正如Rory提到的,在表格中没有公式数组可能。 如果您尝试通过<CTRL><SHIFT><ENTER>手动将数组插入到表中,则可以深入研究,这通常不是编程方式。 Excel的答案是:“表格中不允许使用多单元格数组公式。

但是为了至less用一组相等的公式来填充表格的单元格,这个最小的代码片段适用于我:

 Worksheets("sheet1").ListObjects("Table2").DataBodyRange.Formula = "=SUM($F$1:$G$1)" 

要么

 Worksheets("sheet1").ListObjects("Table2").DataBodyRange.Cells.Formula = "=SUM($F$1:$G$1)" 

这是一个更鼓舞人心的提示: http : //www.myonlinetraininghub.com/excel-2007-tables

对于表格来说,录制macros将无助于录制需要的最低复杂描述。