我有两张table。表1在另一个工作表上,我试图在那里提取数据,表2在Header工作表上,我把数据放在那里。这是一个数组公式,其中的数据将被放置在多个单元格。这似乎是我卡住的地方。我似乎无法粘贴它,给我一个“1004错误”(如果不使用databodyrange)和“方法或数据成员未找到”(如果使用ListColumn)。
购买价值跟踪器位于标题页FinalTableSource[购买价值]位于第二页
这里是现在与一些更新的代码,但我仍然得到一个1004错误。
Public Sub MakeFinalTable_Click()
'Resize Table
Dim ws As Worksheet, lo As ListObject
Set ws = Sheets("Header")
Set lo = ws.ListObjects("FinalTable")
lo.ListColumns("Value Bought Tracker").DataBodyRange.FormulaArray = "=IFERROR(INDEX(FinalTableSource[Buy Value],SMALL(IF(FinalTableSource[Buy Value]<>"",ROW(FinalTableSource[Buy Value])-ROW(INDEX(FinalTableSource[Buy Value],1,1))+1),ROWS(AA$4:AA4))),"""")"
End Sub
谢谢你的帮助!
2条答案
按热度按时间eqqqjvef1#
编辑:把你的台词分解,这样每一行只有一件事;你就能更容易地发现问题所在
vlurs2pr2#
问题是
Range.FormulaArray
的操作在文档中没有很好地解释。我转移我对这个属性的研究结果(插入表格行时自动完成公式):Range.FormulaArray
https://learn.microsoft.com/es-es/office/vba/api/excel.range.formulaarray的官方文档说这个属性是读/写的,但实际上不允许直接修改它,但是可以间接修改,如下图所示。Range.FormulaArray
的值为Null
。Range.FormulaArray
的唯一方法是给予相同的公式给区域中的所有单元格,例如,当语言不是英语时,修改Range.Formula = "=..."
或Range.FormulaLocal = "=..."
。这将为Range.FormulaArray
属性提供与范围内所有单元格中公式相同的值。.FormulaArray
属性,例如,您可以向表(ListObject
)中插入或添加行,计算列将自动采用.ListObject.ListColumns(c).DataBodyRange.FormulaArray
中设置的公式