让Excel从VBA中刷新工作表上的数据

Lan*_*rts 49 excel vba excel-vba

如何在Excel中获取电子表格数据以从VBA中重新计算自己,而不仅仅是改变单元格值?

Lan*_*rts 58

以下几行将起到作用:

ActiveSheet.EnableCalculation = False  
ActiveSheet.EnableCalculation = True  
Run Code Online (Sandbox Code Playgroud)

编辑:.Calculate()方法不适用于所有函数,我在带有加载项数组函数的工作表上测试它.我正在使用的生产单很复杂,我不想尝试测试.CalculateFull()方法,所以它可能有效.

  • 我已经在工作表上测试了计算,但并非单元格中的所有函数都会重新计算。您也可以通过切换“脏”位来实现,但我发现这是最简单的解决方案。 (2认同)

Gra*_*ham 17

这应该是诀窍......

'recalculate all open workbooks
Application.Calculate

'recalculate a specific worksheet
Worksheets(1).Calculate

' recalculate a specific range
Worksheets(1).Columns(1).Calculate
Run Code Online (Sandbox Code Playgroud)


小智 8

有时Excel会打嗝并需要一个启动才能重新应用等式.在使用自定义公式的某些情况下会发生这种情况.

确保您具有以下脚本

ActiveSheet.EnableCalculation = True
Run Code Online (Sandbox Code Playgroud)

重新应用选择的方程式.

Cells(RowA,ColB).Formula = Cells(RowA,ColB).Formula
Run Code Online (Sandbox Code Playgroud)

然后可以根据需要循环.


Dav*_*tis 6

你也可以试试

Application.CalculateFull
Run Code Online (Sandbox Code Playgroud)

要么

Application.CalculateFullRebuild
Run Code Online (Sandbox Code Playgroud)

如果您不介意重建所有打开的工作簿,而不仅仅是活动工作表.(也CalculateFullRebuild重建依赖关系.)