如何使用VBA刷新Excel 2010中的单元格?

时间:2012-11-22 13:39:48

标签: vba excel-vba excel

How to refresh ALL cell through VBA

How do you get Excel to refresh data on sheet from within VBA?

我正在使用上面显示的所有解决方案:

ActiveSheet.EnableCalculation = False  
ActiveSheet.EnableCalculation = True

Application.Calculate

Application.CalculateFull

但是这些都不适用于excel 2010,当我转到单元格并右键单击refresh它有效。如何在VBA中刷新它。

此选项:Sheets("Name_of_sheet").Range("D424").Refresh提出exception 438

的问题:

  1. 如何让脚本支持excel 2003,2007,2010
  2. 如何选择使用VBA源文件进行刷新?
  3. 编辑:

    1. 我想在worksheet 3的菜单中模拟鼠标右键并选择刷新。这就是全部故事。

    2. 我在10年前创建的excel文件上工作。在excel 2010中打开它时,我可以转到单元格并右键单击它并选择刷新,然后选择要刷新的.txt文件,它就可以正常工作。现在,当我尝试在VBA中自动执行此操作时,上面的所有代码都无济于事。

5 个答案:

答案 0 :(得分:2)

对于您可以使用的单个单元格:

Range("D13").Calculate

OR

Cells(13, "D").Calculate

答案 1 :(得分:1)

您可以尝试使用 Application.Calculation

Application.Calculation = xlCalculationManual
Application.Calculation = xlCalculationAutomatic

答案 2 :(得分:1)

我最终使用了鼠标事件和按键来执行此操作:

Sheets("worksheet34").Select
Range("D15").Select
Application.WindowState = xlMaximized
SetCursorPos 200, 600 'set mouse position at 200, 600
Call mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0) 'click left mouse
Application.SendKeys ("R")

答案 3 :(得分:1)

只是一个提醒;

使用时要小心

Application.Calculation = xlCalculationManual
Application.Calculation = xlCalculationAutomatic

这会将整个Excel应用程序设置为自动或手动计算公式。如果你使用

Application.Calculation = xlCalculationManual

您会注意到自动公式不再有效。

欢呼声

答案 4 :(得分:0)

Application.Calculate 对我的函数不起作用。即使后面跟着 DoEvents 也不会。

我发现有效的是在单元格中重新输入公式。 获取公式的一种简单方法是开始记录 macro,使用 F2 编辑单元格,然后按 enter。该宏将使用所有需要的引号制作函数文本的完美副本。

下面是一个例子。

Sheets("Name_of_sheet").Range("D424").FormulaR1C1 = "=now()"