A:Dirty方法与工作簿重新计算有关,指定下次重新计算发生时,需要进行重新...
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 “试图关闭文件而不保存,将出现一个对话框.”
如何理解Excel公式中的各种符号?
Q:在Excel公式中,我们会使用各种符号连接数字、单元格或函数,从而获得想要的结果,例如,=SQRT((1234-234)/1 )^2。能够总结一下这些符号的使用吗? A:下面是Excel公式中使用的常用符号及说明。 - * / 基本的算术操作符:加、减、乘、除。例如,1 2,9-6,11*9,63/7,3
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
如何将数据工作表中的数据移至不同的工作表?
Q:我在一个主工作表中导入并存放数据,想要将这些数据分别转移到不同的工作表中,如所示,在工作表Data中存放着各超市的销售数据,现在要将这些数据分别移至具有与超市名称同名的工作表中,即“东区超市”中的数据全部移至工作表“东区超市”中,对于“北区超市”和“西区超市”也是如此。如何使用VBA代码实现一次转移数据? A