Excel VBA application.calculate及其变体不计算公式数组,但F9键

如果有一个小范围包含一个相对较长的公式数组(见下文)。 当我用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)),"")

假设你有一个引用数组公式的范围对象
如果您处于手动计算模式,请尝试

 theRange.CurrentArray.Calculate 

如果您处于自动模式,请尝试

 theRange.CurrentArray.Dirty theRange.CurrentArray.Calculate