Excel vba删除工作表的代码和实例
时间:2023-06-02 08:05:53
文章介绍excel中vba删除工作表的方法,并通过两个案例来具体理解vba代码。
上一篇文章我们介绍了使用excel的基础操作来删除工作表。本文给大家分享vba删除工作表的代码写法。
vba删除工作表案例一:删除一张表以外的所有工作表
如下图所示:这一个excel工作薄包含多张工作表,如何使用vba删除 “IT部落窝论坛”以外的工作表呢?右边截图就是使用VBA代码删除后的效果,整个工作薄就只剩下一张工作表:IT部落窝论坛。
下面是具体的vba删除工作表操作步骤:
第一,按下ALT+F11,打开VBE编辑器。
第二,单击菜单:插入——模块,插入一个模块,并复制下面的代码到代码输入区:
Sub vba删除工作表()
Application.DisplayAlerts = False
Dim sht As Object
For Each sht In ThisWorkbook.Worksheets
If sht.Name <> "
IT部落窝论坛" Then
sht.Delete
End If
Next
Application.DisplayAlerts = True
End Sub
第三,单击上面截图所示的工具栏上面那个绿色的“运行”命令,excel就会自动删除“
IT部落窝论坛”以外的所有工作表。
从两篇删除工作表方法的文章对比,我们可以清楚的看到,如果工作表很多的情况,使用VBA删除工作表,效率会更加高效。而且代码可以随时调用运行,减少手工操作。
vba删除工作表案例二:逐一提示删除工作表
录制代码的方法参考上面介绍,下面这一段代码运行的结果是出现一个提示框,要求输入工作表名称,如果输入的工作表名正确,excel就删除对应的工作表,如果输入的工作表不正确,excel返回消息框提示:您要删除的工作表不存在。
Sub vba删除工作表()
Dim ws As Worksheet
Dim str As String
str = Application.InputBox(prompt:="输入需要删除的工作表:", Title:="删除工作表", Default:="sheet1", Type:=2)
On Error GoTo back
Set ws = Worksheets(str)
Application.DisplayAlerts = False
ws.Delete
Application.DisplayAlerts = True
Exit Sub
back:
MsgBox "您要删除的工作表不存在!"
End Sub
上面这段vba删除工作表的方法,如果需要经常使用,我们可以保存为宏,在需要的时候按快捷键ALT+F8调用,只要输入工作表名称即可删除工作表。