⊙⊙⊙⊙⊙ 公众号法务:杨子仲 ⊙⊙⊙⊙⊙
在使用VBA对Excel对象(单元格内容、格式、图表等)进行操作的速度是比较慢的,如果对单元格区域,每个单元格逐一写入内容,会消耗大量的时间,为了提升工作效率,思路就是减少对Excel对象的操作,对单元格的操作,改成用二维数组对单元格区域的填充操作,注意二维数组的行列数最好和单元格区域的行列数一致。
在子程序的开始和结束时,将Excel程序的重新计算分别设置成“手动重算”和“自动重算”,也是很重要的,特别是表格里公式很多时,时间差异会非常明显。
以下是简单的演示代码:
Private Sub Test_ArrFillRanges() Application.Calculation = xlCalculationManual '在子程序开始时,将Excel程序的计算方式改成“手动重算”,让表格中的公式不自动更新,可以大大提高计算效率; '用数组提高VBA填充Excel单元格的效率,演示; Dim Arr() '定义一个数组, Dim i As Integer Dim j As Integer ReDim Arr(2, 4) '将数组重定义为二维数组,实际运用中,参数一般为变量 For i = 0 To 1 For j = 0 To 3 Arr(i , j ) = Val(i & j) '赋值二维数组; Next j Next i ActiveSheet.Range("AK23:AN24") = Arr '将整个数组赋值给对应大小的单元格区域, Application.Calculation = xlCalculationAutomatic '在子程序结束前,将Excel程序的计算方式恢复成“自动重算”,让表格中的公式能自动更新;End Sub
欢迎大家来访,我的微信小店
☆═━┈ 往期精彩 | Excel实战 ┈━═☆
Excel | VBA:一键提取票根网ETC电子发票通行明细清单数据
Excel | VBA:中国邮政新一代寄递平台派车单批量按天分频
Excel | 公式:检查电子发票重复报销、相近连号等
Excel | VBA批量纠正单元格无等号计算式
Excel | VBA限定文本框只能输入非负金额
---------------------------------------------------------
如果觉得文章有用,欢迎分享,感谢!
---------------------------------------------------------
杨子仲的表情包主页
给自己宣传,欢迎大家使用我的表情包
---------------------------------------------------------