如何重新执行Excel表中的计算公式,这个方法不能错过
文章标签:
excel计算公式大全
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对象一个方法,使用简单,在执行一些公式计算过程是十分好用的功能。
利用这个方法,可以使我们的表格获得更加灵活的数据处理方法。
所以要对些进行一些熟练地掌握。
欢迎关注、收藏