excel图表中Dirty有什么作用?
2023-01-26 餐饮美食网 【 字体:大 中 小 】
Q:在Excel VBA代码中,我有时会看到Range对象的Dirty方法,能够说明一下该方法的作用吗?
A:Dirty方法与工作簿重新计算有关,指定下次重新计算发生时,需要进行重新计算的单元格区域。
通常,Calculate方法强制重新计算指定的区域,此时Microsoft Excel知道需要重新计算的单元格。
然而,如果Excel设置为手动计算模式,就可以使用Dirty方法指示Excel识别要重新计算的特定单元格。如果Excel本来就处于自动计算模式,使用Dirty方法将指示Excel执行重新计算。
下面是官方文档给出的一个示例。
Sub UseDirtyMethod()
MsgBox “输入两个值和一个公式.”
Range(“A1”).Value = 1
Range(“A2”).Value = 2
Range(“A3″).Formula =”=A1+A2”
‘ 保存对工作表的改变
Application.DisplayAlerts = False
ActiveWorkbook.Save
MsgBox “修改已保存.”
‘ 强制对单元格A3进行重新计算.
Application.Range(“A3”).Dirty
MsgBox “试图关闭文件而不保存,将出现一个对话框.”
End Sub
代码先在工作表中输入数据后进行了保存,然后强制对单元格A3进行重新计算,此时表现上看工作簿没有发生变化,但Excel认为重新计算后工作簿已经发生了变化,如果不保存而关闭工作簿,就会出现如下所示的警告信息框。
上面是在Excel处于自动重算模式时的结果。如果Excel处于手动重算模式,也可以使用Dirty方法发挥重新计算功能。
例如,在单元格B3中输入公式:
=RAND()
在VBE中输入如下的代码:
Sub testDirty()
‘设置工作簿计算模式为手动重算
Application.Calculation =xlCalculationManual
‘在工作表中输入数据使工作表发生变化
Range(“C3″).Value = ” Excel”
Range(“C4”).Select
‘强制重新计算单元格B3
Range(“B3”).Dirty
‘保存当前工作簿
ActiveWorkbook.Save
End Sub
![](https://img.canyinms.com/d/file/p/202301/26/202210283400.jpg)
![](/kaifadou/static/images/ndArrow.png)
![](/kaifadou/static/images/info2.png)
如何自制蛋挞
![](/kaifadou/static/images/info2.png)
肉火烧面怎么和面
![](/kaifadou/static/images/info2.png)
奶茶几分糖好喝
![](/kaifadou/static/images/info2.png)
过桥米线是哪里的?
![](/kaifadou/static/images/info2.png)
面霜和乳液的区别
![](/kaifadou/static/images/info2.png)
怎么摘隐形眼镜
![](/kaifadou/static/images/info2.png)
粉饼和散粉的区别
![](/kaifadou/static/images/info2.png)
冷烫和热烫的区别
![](/kaifadou/static/images/info2.png)
高品质香水如何鉴别?用三步就可以解决
![](/kaifadou/static/images/info2.png)
如何去除黑眼圈
![](/kaifadou/static/images/rightBar.png)