【问题标题】:excel vba index match array to separate fileexcel vba索引匹配数组以分隔文件
【发布时间】:2019-10-23 08:19:13
【问题描述】:

我记录了一个索引匹配数组公式(多个条件列),当我播放它时,它失败了......

“运行时错误 1004:无法设置 Range 类的 FormulaArray 属性”

使用 excel vba,我可以编写引用同一工作簿中的表或工作表的索引匹配数组公式,但是当我尝试引用保存在单独文件中的大型数据库表时,我收到 1004 中提到的错误标题。

'我可以执行此索引匹配数组公式,它引用同一工作簿中的工作表

Selection.FormulaArray = "=Index('GL - Chart of Accts Listing'!R6C1:R5000C1,Match(RC3&""*Salary*"",'GL - Chart of Accts Listing'!R6C1:R5000C1&'GL - Chart of Accts Listing'!R6C2:R5000C2,0))"

'最终结果是:

'{=INDEX('GL - Chart of Accts Listing'!$A$6:$A$5000,MATCH($C12&"*Salary*",'GL - Chart of Accts Listing'!$A$6:$A$5000&'GL - Chart of Accts Listing'!$B$6:$B$5000,0))}

'然而,这个公式给了我运行时 1004 错误,即使它正是我记录它的方式。

Selection.FormulaArray = "=INDEX('[All AP Transactions by Account Number - CMS Table GLSBAP.xlsm]Data File'!R1C5:R47948C5,MATCH(RC4&RC14,'[All AP Transactions by Account Number - CMS Table GLSBAP.xlsm]Data File'!R1C2:R47948C2&'[All AP Transactions by Account Number - CMS Table GLSBAP.xlsm]Data File'!R1C10:R47948C10,0))"

非常感谢任何帮助。谢谢,SR

【问题讨论】:

    标签: arrays excel vba indexing match


    【解决方案1】:

    你在运行之前选择了正确的范围吗?
    Selection.FormulaArray = "=INDEX('[All AP Transactions by Account Number...

    【讨论】:

    • 是的,我使用 ctrl-shift-enter 记录了 excel 公式,告诉 excel 这是一个数组公式而不是标准公式,并且得到了有效的结果。当我尝试运行 vba 代码时,它才成为一个问题。谢谢
    • 好的,所以当您运行宏时,您会看到类似myrange.select?
    • 它更像 Range(Cells(TRow, DCol), Cells(BRow,DCol)).select 我根据标准顶行 (TRow)、底行 ( BRow) 和数据列 (DCol)。我实际上并没有选择它。它只是 Range(...).FormulaArray。我已经测试并发现使用 .select 后跟 selection.FormulaArray 不会改变错误。谢谢-SR
    猜你喜欢
    • 2016-11-30
    • 2011-11-26
    • 1970-01-01
    • 2018-11-13
    • 1970-01-01
    • 1970-01-01
    • 2021-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多