亞寵展、全球?qū)櫸锂a(chǎn)業(yè)風(fēng)向標(biāo)——亞洲寵物展覽會(huì)深度解析
575
2025-04-03
excel圖表中Dirty有什么作用?
Q:在Excel VBA代碼中,我有時(shí)會(huì)看到Range對(duì)象的Dirty方法,能夠說明一下該方法的作用嗎?
A:Dirty方法與工作簿重新計(jì)算有關(guān),指定下次重新計(jì)算發(fā)生時(shí),需要進(jìn)行重新計(jì)算的單元格區(qū)域。
通常,Calculate方法強(qiáng)制重新計(jì)算指定的區(qū)域,此時(shí)Microsoft Excel知道需要重新計(jì)算的單元格。
然而,如果Excel設(shè)置為手動(dòng)計(jì)算模式,就可以使用Dirty方法指示Excel識(shí)別要重新計(jì)算的特定單元格。如果Excel本來就處于自動(dòng)計(jì)算模式,使用Dirty方法將指示Excel執(zhí)行重新計(jì)算。
下面是官方文檔給出的一個(gè)示例。
Sub UseDirtyMethod()
MsgBox “輸入兩個(gè)值和一個(gè)公式.”
Range(“A1”).Value = 1
Range(“A2”).Value = 2
Range(“A3″).Formula =”=A1+A2”
‘ 保存對(duì)工作表的改變
Application.DisplayAlerts = False
ActiveWorkbook.Save
MsgBox “修改已保存.”
‘ 強(qiáng)制對(duì)單元格A3進(jìn)行重新計(jì)算.
Application.Range(“A3”).Dirty
MsgBox “試圖關(guān)閉文件而不保存,將出現(xiàn)一個(gè)對(duì)話框.”
End Sub
代碼先在工作表中輸入數(shù)據(jù)后進(jìn)行了保存,然后強(qiáng)制對(duì)單元格A3進(jìn)行重新計(jì)算,此時(shí)表現(xiàn)上看工作簿沒有發(fā)生變化,但Excel認(rèn)為重新計(jì)算后工作簿已經(jīng)發(fā)生了變化,如果不保存而關(guān)閉工作簿,就會(huì)出現(xiàn)如下所示的警告信息框。
上面是在Excel處于自動(dòng)重算模式時(shí)的結(jié)果。如果Excel處于手動(dòng)重算模式,也可以使用Dirty方法發(fā)揮重新計(jì)算功能。
例如,在單元格B3中輸入公式:
=RAND()
在VBE中輸入如下的代碼:
Sub testDirty()
‘設(shè)置工作簿計(jì)算模式為手動(dòng)重算
Application.Calculation =xlCalculationManual
‘在工作表中輸入數(shù)據(jù)使工作表發(fā)生變化
Range(“C3″).Value = ” Excel”
Range(“C4”).Select
‘強(qiáng)制重新計(jì)算單元格B3
Range(“B3”).Dirty
‘保存當(dāng)前工作簿
ActiveWorkbook.Save
End Sub
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。