Excel 如何使用VBA刷新单元格?
我正在使用中出现的所有解决方案: 或 或 它们都不能在Excel 2010中工作。当我转到单元格并右键单击“刷新”时,它会工作。如何在VBA中刷新Excel 如何使用VBA刷新单元格?,excel,vba,Excel,Vba,我正在使用中出现的所有解决方案: 或 或 它们都不能在Excel 2010中工作。当我转到单元格并右键单击“刷新”时,它会工作。如何在VBA中刷新 工作表(“工作表名称”)。范围(“D424”)。刷新 例外438 问题: 如何使脚本支持Excel 2003、2007、2010 如何使用VBA选择要刷新的源文件 编辑: 我想模拟鼠标右键单击,然后在工作表3的菜单中选择“刷新”。这就是整个故事 我处理10年前创建的Excel文件。在Excel 2010中打开时,我可以转到一个单元格,右键单击它并
工作表(“工作表名称”)。范围(“D424”)。刷新
例外438
问题:
如何使脚本支持Excel 2003、2007、2010
如何使用VBA选择要刷新的源文件
编辑:
我想模拟鼠标右键单击,然后在工作表3
的菜单中选择“刷新”。这就是整个故事
我处理10年前创建的Excel文件。在Excel 2010中打开时,我可以转到一个单元格,右键单击它并选择“刷新”,然后选择要刷新的.txt文件。我正在尝试在VBA中自动执行此操作
您可以尝试使用
Application.Calculation = xlCalculationManual
Application.Calculation = xlCalculationAutomatic
对于单个单元格,您可以使用:
范围(“D13”)。计算
或
我最终使用鼠标事件和按键来完成:
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")
只是一个提醒
使用时要小心
Application.Calculation = xlCalculationManual
Application.Calculation = xlCalculationAutomatic
这会将整个excel应用程序设置为自动或手动计算公式。如果你使用
Application.Calculation = xlCalculationManual
您会注意到自动公式不再有效
干杯应用程序。计算
对我的函数不起作用。即使后跟DoEvents
也不行
我发现有效的方法是在单元格中重新输入公式。
获取公式的一种简单方法是开始记录宏
,使用F2
编辑单元格,然后按enter
。宏将生成一个包含所有所需引号的函数文本的伟大副本
下面是一个例子
Sheets("Name_of_sheet").Range("D424").FormulaR1C1 = "=now()"
不太管用。。。也许是因为我的第二个问题。如何选择使用VBA刷新源文件?@0x90您可以尝试Application.Calculate
。我不太明白你的第二个问题。细胞现在如何从哪里获取数据?这样它就知道该放什么了?你能发布代码的其他部分吗,或者解释一下你的工作流程吗?你是如何加载电子表格的,以及你是如何尝试从另一个s/s中的代码刷新一个s/s的?请提供更多详细信息,但是否启用了宏?如果您在应用程序级别启用计算,但从原始工作簿打开了一个电子表格,那么您可能计算了错误的工作簿。@SiddharthRout是的:)您需要向我们展示您的代码。你列出的所有方法都有效,所以你做错了其他事情。我今天遇到了这个问题,并尝试了本页上的所有其他答案。然后我看到了这个,它提醒我,我可以在excel中记录宏。man…excel是一个PITA。@这确实是记录宏的一个选项…:)您使用的是什么版本的Excel?
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")
Application.Calculation = xlCalculationManual
Application.Calculation = xlCalculationAutomatic
Application.Calculation = xlCalculationManual
Sheets("Name_of_sheet").Range("D424").FormulaR1C1 = "=now()"