2017-02-11 125 views
1

如果有一個小範圍包含相對較長的公式數組(見下文)。 當我用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

回答

1

假設你有一個範圍對象引用數組公式然後
您是否在手動計算模式嘗試

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