Excel VBA 技巧:如何在最后一个工作表后插入新工作表?
适用场景:
- 需要批量创建新工作表时
- 想确保新工作表始终添加在最后
- 自动化报表生成
代码实现
Sub AddNewWorksheetAtEnd()
Dim wb As Workbook
Dim ws As Worksheet
' 引用当前工作簿(可替换为指定工作簿)
Set wb = ActiveWorkbook
' 在最后一个工作表后添加新工作表
Set ws = wb.Worksheets.Add(After:=wb.Worksheets(wb.Worksheets.Count))
' 可选:命名新工作表
ws.Name = "数据_" & Format(Date, "yyyymmdd") ' 示例:数据_20230812
End Sub
代码解析
1. `wb.Worksheets.Count` → 获取当前工作簿的工作表总数
2. `After:=wb.Worksheets(...)` → 指定新工作表插入的位置
3. `ws.Name = "..."` → 可自定义工作表名称(如按日期命名)
进阶用法
防止重名报错(检查工作表是否存在):
On Error Resume Next
If Evaluate("ISREF('" & "新工作表" & "'!A1)") Then
MsgBox "工作表已存在,请修改名称!", vbExclamation
Exit Sub
End If
On Error GoTo 0
批量插入多个工作表(循环实现):
For i = 1 To 5 ' 插入5个新工作表
Set ws = wb.Worksheets.Add(After:=wb.Worksheets(wb.Worksheets.Count))
ws.Name = "Sheet_" & i
Next i
关注我,获取更多 Excel自动化办公技巧!
Excel技巧 VBA编程 办公自动化 职场效率
如果觉得有用,别忘了 点赞 + 收藏,关注我,获取更多Excel VBA高效编程技巧!