Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2497|回复: 3

[VBA] 013-优化“建工作表目录”-疑难千寻千解丛书(VBA)

[复制链接]
发表于 2011-1-20 13:56 | 显示全部楼层 |阅读模式
ET疑难千寻千解丛书之EXCEL2010编程与实践
罗刚君 章兰新 黄朝阳 编著

疑难13  
如何优化过程“建工作表目录”
对工作簿中所有工作表提取名称存放在A列,过程代码如下。如何进行优化,使其效率更高呢?

  1. Sub建工作表目录()
  2.   Dim i As Integer
  3.   For i = 1 To Sheets.Count  '循环每一个工作表
  4.     Cells(i, 1) = Sheets(i).Name  '将工作表名写入i行1列
  5.   Next
  6. End Sub
复制代码

è解决方案
将多次写入单元格的方式改用数组来处理,从而只需对单元格写入一次,以提升效率。
í操作方法
步骤1        
改用数组获取工作表名,再一次性写入单元格,完整代码如下:

  1. Sub建工作表目录2()
  2.   Dim i As Integer, arr()  '声明一个数组
  3.   ReDim arr(1 To Sheets.Count, 0)  '重置数组的维数和上标
  4.   For i = 1 To Sheets.Count  '循环每一个工作表
  5.     arr(i, 0) = Sheets(i).Name  '将工作表名写入数组
  6.   Next
  7.   [a1].Resize(Sheets.Count, 1) = arr  '将数组的值一次性写入单元格
  8. End Sub
复制代码
步骤2        
分别执行两段代码,其结果一致,但效率上有较大的差异,执行后的结果如图所示。


=============================
上摘自《EXCEL2010编程与实践》


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 发表于 2011-1-20 13:58 | 显示全部楼层
妖言:

代码中的“数组”意味着加速,函数中的“数组”意味着蜗牛……
回复

使用道具 举报

发表于 2011-1-20 14:01 | 显示全部楼层
小妖 发表于 2011-1-20 13:58
妖言:

代码中的“数组”意味着加速,函数中的“数组”意味着蜗牛……

{:101:}{:101:}
回复

使用道具 举报

发表于 2011-4-9 21:29 | 显示全部楼层
{:011:}{:011:}{:011:}{:011:}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-18 18:53 , Processed in 0.219962 second(s), 5 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表