【发布时间】:2020-06-11 17:25:00
【问题描述】:
如果在一张纸上查看第二张纸,我有一个数组公式,我发现在处理第二张纸时,一切都变慢了很多,因为数组公式的不断计算基于新推算的数据表 2。我真的只需要它在有人去表一查看信息时运行。我决定编写一个宏以在激活工作表时触发,然后将数组公式粘贴到正确的单元格中,复制返回的值,然后粘贴为一个值,这样公式就不会保持活动状态。
我遇到的问题是我的宏似乎不想粘贴我的公式(我什至尝试使用宏记录器工具输入公式,但当我尝试重新运行录制的宏时它失败了)。我的错误是“无法设置 Range 类的 FormulaArray 属性”。
代码如下:
Range("U5").Select
Selection.FormulaArray = _
"=IF(ISERROR(INDEX('Maintenance Setup'!C3,SMALL(IF('Maintenance Setup'!C4=""Switchgear_Switchboard"",ROW('Maintenance Setup'!C4)-ROW(INDEX('Maintenance Setup'!C4,1,1))+1),RC[-1])))=TRUE,"""",INDEX('Maintenance Setup'!C3,SMALL(IF('Maintenance Setup'!C4=""Switchgear_Switchboard"",ROW('Maintenance Setup'!C4)-ROW(INDEX('Maintenance Setup'!C4,1,1))+1),RC[-1])))"
当我手动输入公式时,公式工作正常,“维护设置”是包含所有数据的工作表,Switchgear_Switchboard 是文档正在查找的一些文本,公式中有一个空白,即“”“” "
我也试过让代码使用 A1 符号而不是 R1C1 输入公式
谢谢。
【问题讨论】:
标签: excel vba excel-formula array-formulas