excel 如何使用VBA刷新单元格?

1l5u6lss  于 2023-02-14  发布在  其他
关注(0)|答案(8)|浏览(694)

我正在使用中出现的所有解决方案:
How to refresh ALL cell through VBA
Getting Excel to refresh data on sheet from within VBA

ActiveSheet.EnableCalculation = False  
ActiveSheet.EnableCalculation = True

Application.Calculate

Application.CalculateFull

它们在Excel 2010中都不起作用。当我转到单元格并右键单击"刷新"时,它起作用了。我如何在VBA中刷新?
将引发一个
例外438
问题:
1.如何使脚本支持Excel 2003、2007、2010?
1.如何使用VBA选择要刷新的源文件?
编辑:
1.我想模拟一次鼠标右键单击,然后在worksheet 3的菜单中选择刷新,这就是整个过程。
1.我在处理一个10年前创建的Excel文件。当在Excel 2010中打开时,我可以转到一个单元格,右键单击它并选择刷新,然后选择要从其刷新的. txt文件。我正在尝试在VBA中自动执行此操作。

wz8daaqr

wz8daaqr1#

您可以尝试使用**Application.Calculation**

Application.Calculation = xlCalculationManual
Application.Calculation = xlCalculationAutomatic
0aydgbwb

0aydgbwb2#

对于单个单元格,可以用途:
Range("D13").Calculate

Cells(13, "D").Calculate
lmyy7pcs

lmyy7pcs3#

最后我使用鼠标事件和击键来实现:

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")
wmomyfyw

wmomyfyw4#

只是提醒
使用时要小心

Application.Calculation = xlCalculationManual
Application.Calculation = xlCalculationAutomatic

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

Application.Calculation = xlCalculationManual

你会发现你的自动公式不再起作用了。
干杯

l5tcr1uw

l5tcr1uw5#

通过将单元格/单元格区域标记为脏,可以强制excel重新计算单元格或单元格区域。
示例:

' Recalculate Column D4 to D24
Sheets("Name_of_sheet").Range("D4:D24").Dirty

' Recalculate Cell D4<br>
Sheets("Name_of_sheet").Range("D4").Dirty<br>
yizd12fk

yizd12fk6#

Application.Calculate对我的函数不起作用。即使后面跟着DoEvents也不行。
我发现有效的方法是在单元格中重新输入公式。获取公式的一个简单方法是开始记录macro,使用F2编辑单元格,然后按enter。宏将制作一个包含所有需要的引号的函数文本的很好的副本。
下面是一个例子。

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

vawmfj5a7#

Cells(x, y).Select
ActiveCell.FormulaR1C1 = Selection.Value

非常适合我

2sbarzqh

2sbarzqh8#

我在一个工作簿中有一个很长的"宏",超过20 MB,有数万行,它调用一个用Fortran编写的dll。这些方法都不起作用:

Call Application.Calculate
Call Application.CalculateFull
Call Application.CalculateFullRebuild
Re-entering the formula
Range.Dirty

Application.Calculation = xlCalculationManual
Application.Calculation = xlCalculationAutomatic

ThisWorkbook.ActiveSheet.EnableCalculation = False
ThisWorkbook.ActiveSheet.EnableCalculation = True

这起了作用:

On Error Resume Next
Application.SendKeys "{F2}{Enter}{NumLock}"  'SendKeys turns off NumLock for some reason
On Error GoTo 0

这甚至在选择了图表时也有效。

相关问题