今天还是用简单案例帮助大家理解循环语句。
案例:
昨天说了如何根据目录创建工作表?现在反过来,如何给所有工作表创建目录?
下面这个工作簿,有多个工作表,希望在 Sheet1 的 A 列显示除 Sheet1 外所有工作表的名称目录,用 VBA 如何实现?
![f5098b6780623af8447c0ad0c8da150f.png](https://i-blog.csdnimg.cn/blog_migrate/d9421e01c2cf28c2e925cab997324e56.jpeg)
![79e21d9c0a3cc419db3a062321521f6f.gif](https://i-blog.csdnimg.cn/blog_migrate/314d76ab2cba555560662542932c9adb.gif)
方法:
1. 按 Alt + F11 打开 VBE,输入以下代码:
Sub SheetName()
Dim sht As Worksheet, i As Integer
i = 0 ‘i 为啥从 0 开始计数?因为sheet1不需要写入目录,它占用了一个统计变量值。如果 i 从 1 开始的话,就是从 A2 单元格开始写
For Each sht In Worksheets '历遍所有工作表
If sht.Name <> "Sheet1" Then Cells(i, "A") = sht.Name '除 sheet1 之外,将所有工作表名称依次写入 A 列 第 i 行
i = i + 1
Next sht
End Sub
![062de6fbd90a668b314d74f5b3aad3d2.png](https://i-blog.csdnimg.cn/blog_migrate/a2724fec464468ce73473fb2e42dfaed.jpeg)
2. 制作按钮:
1) 在表格界面点击“开发工具”-->“插入”-->“按钮”
2) 将按钮名称改为“列出工作表名称”
![e6fc60e341524836005bb8864765d196.png](https://i-blog.csdnimg.cn/blog_migrate/0045667c9deefce856780da1ad627140.jpeg)
![41379698a6044db9266a2a3a42dda426.png](https://i-blog.csdnimg.cn/blog_migrate/12198358ca0e03188df3e0db9429ce88.jpeg)
3) 右键单击按钮-->选择“指定宏”
![50481fa113167904fd6dc116c7ef4dae.png](https://i-blog.csdnimg.cn/blog_migrate/1bda9a48d064d62d54fc4b30e85d014c.jpeg)
4) 选择 SheetName 这个宏,点击“确定”
![260dfb6bff5dbe5d01fad983e8ff1333.png](https://i-blog.csdnimg.cn/blog_migrate/37302e9b070bb3b4eeaa6a3b76b543e8.jpeg)
现在就完成了,这就是演示效果:
![79e21d9c0a3cc419db3a062321521f6f.gif](https://i-blog.csdnimg.cn/blog_migrate/314d76ab2cba555560662542932c9adb.gif)