新闻动态 你的位置:意昂体育 > 新闻动态 >

动态新增和删除工作表

发布日期:2025-10-27 07:36    点击次数:159

在 VBA 中对工作表的操作,新增和删除可以通过Sheets或Worksheets对象的方法实现。

新增工作表界面

第1点:新增工作表

Sub AddSheetAtPosition() ' 在"Sheet1"之前插入新表 Worksheets.Add Before:=Worksheets("Sheet1") ' 在最后一个工作表之后插入新表 Worksheets.Add After:=Worksheets(Worksheets.Count)End Sub

第2点:工作表命名

Sub AddNamedSheet() newSheet.Name = "新工作表" ' 命名新表(需避免重复名称)End Sub

新增工作表时需确保名称不与现有工作表重复,否则会报错。若需批量新增,可结合循环使用。

第3点:删除工作表

Sub DeleteSheet()'删除关闭提示框 Application.DisplayAlerts = False ' 删除名为"要删除的表"的工作表 Worksheets("要删除的表").DeleteEnd Sub

第4点:动态添加和删除工作表

通过点击按钮来判断表格中的名字列表,是否已经创建工作表,如果没有创建则新增工作表。

Sub sheetsm() ''关闭提示框 Application.DisplayAlerts = False '创建一个字典 Dim d As New Dictionary, ws As Worksheet '遍历工作表中的名称 For Each ws In Worksheets '工作表名为空 d(ws.Name) = "" Next ws '动态获取工作表名称arr = Range("a1", Cells(Rows.Count, 1).End(xlUp))'循环工作表的名称 For i = 1 To UBound(arr) '关键字在字典中是否存在,没有就创建 If Not d.Exists(arr(i, 1)) Then Worksheets.Add(after:=Sheets(Sheets.Count)).Name = arr(i, 1) End If Next i Sheets("统计").Activate '先把姓名加入到数组中,然后遍历工作表,如果没有就删除 '把d的字典清空 d.RemoveAll '再次循环工作表的名称写入到字典中 For i = 1 To UBound(arr) d(arr(i, 1)) = ""Next i '再次循环工作表 For Each ws In Worksheets If ws.Name <> "统计" Then '如果没有才操wt If Not d.Exists(ws.Name) Then ws.Delete End If End If Next ws End Sub

第5点:注意要点

1.至少保留一个工作表,无法删除工作簿中最后一个工作表。

2.删除操作不可逆,建议删除前备份或增加判断逻辑。



Powered by 意昂体育 @2013-2022 RSS地图 HTML地图

Copyright Powered by站群系统 © 2013-2024