我有一个切换单元格,它在我的工作簿中的多个工作表中提供计算。目标是,每当更改此切换单元格时,工作簿都会重新计算并提供更新编号。
我打开了手动计算。
以下是我尝试过的方法(注意代码在表格中)
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Cells(3, 4)) Is Nothing Then
Application.Calculate
End If
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Cells(3, 4)) Is Nothing Then
Application.CalculateFull
End If
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Cells(3, 4)) Is Nothing Then
Application.CalculateFullRebuild
End If
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Cells(3, 4)) Is Nothing Then
range("DI:DI").calculate
'to calculate the specific range which drives the updated numbers
End If
这些方法都不起作用。唯一的方法是保存工作簿并计算所有内容。
有什么想法吗?
- - - - - - - - - - - - - - -编辑 - - - - - - - - - - ---------
迄今为止唯一有效的解决方案,强制计算所有驱动最终结果的单元格。希望有更优雅的解决方案。总运行时间 ~3 秒\
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Cells(3, 4)) Is Nothing Then
Worksheets("Dashboard").Range("af3").Calculate
Worksheets("Base").Range("R1:R50000").Calculate
Worksheets("Control").Range("R1:R50000").Calculate
Worksheets("Base").Range("DI1:DI50000").Calculate
Worksheets("Control").Range("DI1:DI50000").Calculate
Worksheets("Dashboard").Range("W10:W5000").Calculate
Worksheets("Dashboard").Range("L10:L5000").Calculate
Worksheets("Dashboard").Range("Y10:Aa5000").Calculate
Worksheets("Dashboard").Range("B2:B7").Calculate
end if
最佳答案
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Cells(3, 4)) Is Nothing Then
Worksheets("Dashboard").Range("af3").Calculate
Worksheets("Base").Range("R1:R50000").Calculate
Worksheets("Control").Range("R1:R50000").Calculate
Worksheets("Base").Range("DI1:DI50000").Calculate
Worksheets("Control").Range("DI1:DI50000").Calculate
Worksheets("Dashboard").Range("W10:W5000").Calculate
Worksheets("Dashboard").Range("L10:L5000").Calculate
Worksheets("Dashboard").Range("Y10:Aa5000").Calculate
Worksheets("Dashboard").Range("B2:B7").Calculate
end if
强制重新计算所有相关范围。
其他方法可能不起作用,因为文件很大(~30mb)
关于vba - Excel VBA 公式不能完全计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47057697/