咔片PPT · AI自动生成演示文稿,模板丰富、排版精美 讯飞智文 · 一键生成PPT和Word,高效应对学习与办公

NO.1

工作当中,Excel表格不免要做一些公式计算,初始设置计算可能是自动计算,也可以是手动计算,打开文件-选项-公式设置里自已定义,如下图。

为什么要设置自动和手动计算呢?

这个要视实际应用情况而定,有些数据需要实时更新,所以就设置为自动计算,有些数据需要手动来计算来得到最佳效果。

VBA来如何实现这样的操作呢?下面重点介绍一下,实现自动计算方法。

NO.2

自动计算功能,需要用到Range对象的Dirty方法实现。

其使用也很十分简单,只要在Range对象后面加Dirty就可以。

Range.Dirty

Range代表一个Range对象变量,感觉这么说有点迷糊。

看下面例子:

Sub DirtyRange() Range("A1")="=B1+C1" Range("B1")=1 Range("C1")=2 dim R as Range set R=ActiveSheet.Range("A1") ThisWorkbook.Save'保存工作薄 R.Dirty'重新计算A1单元格内容 End Sub

执行以上过程后,A1单元格内容会自动计算为值3。

NO.3

下面举一个更详细的例子来说明一下Dirty工作方法。

如图所示,本例中将对A、B、C列进行不同的设置,然后再进行重新计算,最后得到如下效果。

开始整个表是没有任何数据的,使用了一个随机生成函数Rnd()对B、C列进行赋值,A列值为B+C列的和。

单击鼠标即可自动生成计算。

NO.4

代码也不多,大多是对表格进行设置和定位处理。

Private Sub CommandButton1_Click() Range("A3:A15").Select'选择单元格 With Selection .Formula = "=B" & .Row & "+C" & .Row'设置A列单元格公式 .Offset(0, 1).Formula = VBA.Int(10 * VBA.Rnd())'设置B列单元格值 .Offset(0, 2).Formula = VBA.Rnd()'设置C列单元格值 .RowHeight = 26'设置行高 .ColumnWidth = 30'设置列宽 .HorizontalAlignment = xlCenter'距中 .VerticalAlignment = xlCenter .Interior.Color = RGB(211, 211, 1)'背景色 .Borders.LineStyle = 1'单线边框 With .Font'字体设置 .Size = 18 .Bold = True .Color = RGB(222, 1, 1) End With With .Offset(0, 1).Resize(13, 2)'设置B、C列格式 .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .Interior.Color = RGB(111, 221, 251) .Borders.LineStyle = 1 With .Font .Size = 18 .Bold = True .Color = RGB(0, 82, 252) End With End With End With ThisWorkbook.Save'保存工作薄 Application.DisplayAlerts = False'关闭提示 Range("A3:A15").Dirty'自动计算 Application.DisplayAlerts = True End Sub

整个过程中很重要的一点就是在重新计算之前,要对工作薄进行保存,不然不进行计算,因为在Excel选项设置里的一个预设。

所以要特别注意其工作原理。

NO.5

Dirty作为Range对象一个方法,使用简单,在执行一些公式计算过程是十分好用的功能。

利用这个方法,可以使我们的表格获得更加灵活的数据处理方法。

所以要对些进行一些熟练地掌握。

欢迎关注、收藏