2014-07-08 230 views
0

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

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

公式有多长?如果它超过255个字符,你会得到这个错误。 – Rory

+0

它确实是'sheet1'还是它是'Sheet1'? – tannman357

+0

@Rory,公式少于255个字符。 – Malick

回答

1

这个最小片段适用于我:

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

这将具有从A1细胞至B4表示的数字的在小区C1的平均到C5,并且被结合到式阵列。

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

但为了至少填补了一组相同的公式的表格单元,这个最小片段为我的作品:

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

对于表格,记录宏将无助于记录必要的最低复杂描述。

+0

。Range(“TableauCalcs [[”&Me.cboSectors.value&“Row Score Max]]”)似乎导致了我猜测的错误。这是我的一个表列的标题名称,我想在此列中插入数组公式。 – Malick

+0

嗯......你是什么意思的“标题名称”?在Excel和“常用”范围中有指定的范围。这两种语法都是用这个语法来解决的:a)'Sheet1.Range(“A1:B5”)' - > range,b)'Sheet1.Range(“A:A”)' - > full column,c)'Sheet1.Range (“MyNamedRange”)' - >我给了名字“MyNamedRange”的单元格。那么标题名称是什么? –

+0

Annnnnnnd ...我从来没有见过带括号的符号。如果我应该从一个范围中分离一个表格,我使用感叹号:'Sheet1.Range(“TheOtherSheet!A1:B7”)'。括号符号是什么? –