ET疑难千寻千解丛书之EXCEL2010编程与实践 罗刚君 章兰新 黄朝阳 编著
疑难13
如何优化过程“建工作表目录”
对工作簿中所有工作表提取名称存放在A列,过程代码如下。如何进行优化,使其效率更高呢?
- Sub建工作表目录()
- Dim i As Integer
- For i = 1 To Sheets.Count '循环每一个工作表
- Cells(i, 1) = Sheets(i).Name '将工作表名写入i行1列
- Next
- End Sub
复制代码
è解决方案 将多次写入单元格的方式改用数组来处理,从而只需对单元格写入一次,以提升效率。
í操作方法
步骤1
改用数组获取工作表名,再一次性写入单元格,完整代码如下:
- Sub建工作表目录2()
- Dim i As Integer, arr() '声明一个数组
- ReDim arr(1 To Sheets.Count, 0) '重置数组的维数和上标
- For i = 1 To Sheets.Count '循环每一个工作表
- arr(i, 0) = Sheets(i).Name '将工作表名写入数组
- Next
- [a1].Resize(Sheets.Count, 1) = arr '将数组的值一次性写入单元格
- End Sub
复制代码 步骤2
分别执行两段代码,其结果一致,但效率上有较大的差异,执行后的结果如图所示。
============================= 以上摘自《EXCEL2010编程与实践》
|