让我有些疯狂。我想将一维数组中的公式列表复制到listobject列标题所引用的列中。但是,当我尝试复制公式数组时,Excel会采用数组中的第一个公式并自动将其向下填充。如果我使用的范围相差一个(例如,填充除第一个单元格之外的所有单元格,或除最后一个单元格之外的所有单元格),它不会自动填充并按预期使用数组公式。所以,我当前有效的代码是这样:
subtotalRange = tblSubtotalColLtr & tblSubtotalFirstRowRef & ":" & tblSubtotalColLtr & (tblSubtotalFirstRowRef + UBound(arrFormulas) - 2)
finalRowRange = tblSubtotalColLtr & (tblSubtotalFirstRowRef + UBound(arrFormulas) - 1) & ":" & tblSubtotalColLtr & (tblSubtotalFirstRowRef + UBound(arrFormulas) - 1)
Application.AutoCorrect.AutoFillFormulasInLists = False
Range(subtotalRange).Formula = Application.Transpose(arrFormulas)
Range(finalRowRange).Formula = arrFormulas(UBound(arrFormulas))
我最初只是尝试这样做:
Application.AutoCorrect.AutoFillFormulasInLists = False
tbl.ListColumns(tbl.HeaderRowRange(AmountCol).Value).DataBodyRange.formula = application.transpose(arrFormulas)
当前代码是超级烂-是有什么办法可以使第二个代码工作?我在做什么错了?
答案 0 :(得分:0)
您需要调整DataBodyRange
的大小以适合您的数组。
Application.AutoCorrect.AutoFillFormulasInLists = False tbl.ListColumns(AmountCol).DataBodyRange.Resize(UBound(arrFormulas) + 1).Formula = Application.Transpose(arrFormulas)