Excel VBA application.calculate及其变体不计算公式阵列,但F9键确实如此

问题描述:

如果有一个小范围包含相对较长的公式数组(见下文)。 当我用application.calculate或其任何变体来计算范围时,不计算值(不返回任何内容),但是当我使单元格变脏并按[F9]时,会计算并显示这些值。Excel VBA application.calculate及其变体不计算公式阵列,但F9键确实如此

有没有办法制作application.calculate或其任何变体准确地模仿[F9]?

式阵列:

=IFNA(INDEX(INDEX(rangename_003,,COLUMN(rangename_004)),MATCH(ROW(rangename_004),IF(INDEX(rangename_003,,COLUMN(rangename_004))="",-1,COUNTIF(INDEX(rangename_003,,COLUMN(rangename_004)),"<"&INDEX(rangename_003,,COLUMN(rangename_004)))+1),0)),"")

+0

@charleswilliams one for你 – brettdj

假设你有一个范围对象引用数组公式然后
您是否在手动计算模式尝试

theRange.CurrentArray.Calculate 

如果在自动模式下尝试

theRange.CurrentArray.Dirty 
theRange.CurrentArray.Calculate 
+0

没有[rangename] .calculate或application.calculate工作。 [F9]键运作良好。即使在用[F9]成功完成计算并且随后执行了application.calculate代码之后,这些值又会消失。 – m8rc28

+0

Works适合我:rangename_003和rangename_004的引用是什么,数组公式是什么? –

+0

例如:rangename_004是“A1:E5”,不包含任何数据,仅用于检索相对的列和行号,rangename_003是“G10:K14”并包含要排序的数据。公式范围是“M10:Q14”。 – m8rc28