推荐孙老师的vba课程
《跟着孙兴华学习Excel VBA 第一季》
题目:批量提取工作表名字并修改
这一节其实和批量指定删除工作表相似
老师解法
- 提取工作表名称
Sub GetShtName()
Dim sht As Worksheet, i As Long
i = 1 'i初始值为1
With Columns(1)
.ClearContents '清除A列内容
.NumberFormat = "@" '设置单元格格式为文本
End With
Cells(1, 1) = "工作表名称目录"
For Each sht In Worksheets '遍历工作表
i = i + 1
Cells(i, 1) = sht.Name '在A列记录工作表名称
Next
End Sub
- 修改工作表名称
Sub ReNameSht()
Dim strShtName$, sht As Worksheet, i&
On Error Resume Next '当程序运行中出现错误时,继续运行
For i = 2 To Cells(Rows.Count, 1).End(xlup).Row '遍历当前表格A列的数据
strShtName = Cells(i, 1).Value '将表格A列的值,赋予变量strShtName
Worksheets(strShtName).Name = Cells(i, 2).Value '工作表重命名
Next
End Sub
这里有一个偷懒的步骤,就是不判断工作表名称是否需要修改,直接修改,如果报错则忽略(相当于不修改)