No.1 Application对象里面有一个很有用的方法,可以重新计算表中的公式。 因为在有些时候,工作表内的公式并不完全是即时计算的,有些需要手动进行,或者刷新工作表触发某些条件下,Excel才会进行一次计算进程。 本节将讨论一下,如何让工作表按照我们的要求对表中的公式进行计算。 要想达到如上目的,就要认识一个方法:Calculate 这个方法是Application对象下的,所以在使用的时候,要在方法之前添加一个Application对象变量。 具体语法,如下图所示: 学习Calculate方法的时候,要重点掌握其它两个相似的方法,即: CalculateFull和CalculateFullRebuild 这两个方法分别是对工作表进行强制完整计算和重新建立从属关系。 就好比不管三七二十一,都要对表内公式进行计算。 所谓从属关系就是当一个表格的内容是被关联另一个表格内容的时候,这个方法将重新进行一次关联,也就相当于重要输入一次公式。 具体我们看如下示例: 本示例相对简单,黄色区域为有公式的单元格,也就是说所有Calculate方法所执行的单元格。执行代码之后这些内容将重新被计算一次,但由于没有修改任何参数,所以根本看不出单元格内容变化,其实它变了。 如果,在另一台电脑或变更Excel版本之后,打开工作薄将有提示,是否重新计算。 有兴趣,可以试一下。 No.2 代码 '计算所有打开的工作簿Private Sub CommandButton1_Click()Application.CalculateEnd Sub'计算指定工作表Private Sub CommandButton2_Click()ActiveSheet.CalculateEnd Sub'计算指定区域Private Sub CommandButton3_Click()ActiveSheet.Columns("F").CalculateEnd Sub'强制对所有打开工作簿中的数据进行完整计算Private Sub CommandButton4_Click()If Application.CalculationVersion <> ThisWorkbook.CalculationVersion ThenApplication.CalculateFullEnd IfEnd Sub'对于所有打开的工作簿,强制数据的完整计算并重建从属关系Private Sub CommandButton5_Click()If Application.CalculationVersion <> ThisWorkbook.CalculationVersion ThenApplication.CalculateFullRebuildEnd IfEnd Sub 上述代码完整表达了,强制计算的几种方法。 有时候想要实现此功能,是一个很有用的方法,特别是对一些变化很频繁的数据,如股票、基金等,需要即时看到的数据。 具体可根据需求进行设置。 |
|