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
。
的问题:
excel 2003,2007,2010
?我想在worksheet 3
的菜单中模拟鼠标右键并选择刷新。这就是全部故事。
我在10年前创建的excel文件上工作。在excel 2010中打开它时,我可以转到单元格并右键单击它并选择刷新,然后选择要刷新的.txt文件,它就可以正常工作。现在,当我尝试在VBA中自动执行此操作时,上面的所有代码都无济于事。
答案 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()"