为什么ActiveSheet.Calculate不能在VBA中工作?

一些背景:我有一个统计图表。 当切片机改变时,我需要点击计算来更新计数和graphics。 (由于工作簿大小,计算设置为手动)。 相信与否,使用计算button超出了一些用户..我想要它作为一个表格button旁边的graphics很容易看到。 我使用macroslogging器来查找计算表的语句。 它给了我ActiveSheet.Calculate。

问题:当我从macrosbutton运行ActiveSheet.Calculate时,工作表上的graphics不会更新。 Excel的计算button,但是,工程。 当然,他们在function上是相同的? 为什么我的button不更新,但Excel的计算呢?

当我更改button以使用Application.Calcluate时,graphics会更新。

那么,在我的Excel版本(2010)中,有两个计算button:立即计算F9和计算工作表Shift-F9 。 立即计算重新计算整个工作簿,并且应该在function上与Application.Calculate相同,而计算工作表仅重新计算单个工作表,并且应该在function上与ActiveSheet.Calculate相同。

我build议在ActiveSheet.Calculate之前使用Workbook.RefreshAll方法或WorkbookConnection.Refresh方法来查看是否比Application.Calculate方法的开销less。

哦,我绝对相信使用计算button超出了一些用户。