感
谢
关
注
导读
如何在执行代码的时候弹出一个选择框选择单元格区域然后再根据该单元格区域的名称去删除相应的工作表呢?
打开VBE编辑器新建模块并添加VBA代码,如下图:
操作方法:
按ALT F11组合键打开VBE编辑器,选中任意一个工作表名点击右键,然后选择“插入——模块”,在模块中粘贴以下代码:
Sub 批量删除工作表()
Dim sh As Object
Application.Displayalerts = False '关闭提示,否则每删除一个非空工作表,都会出现提示
Set a = Application.InputBox(prompt:='选择要删除的工作表名称单元格区域', Type:=8) '设置一个输入框并设置返回数据类型为单元格引用
For Each sh In ThisWorkbook.Sheets
With sh
If Application.WorksheetFunction.CountIf(a, .Name) 0 Then
.Delete
End If
End With
Next sh
Application.Displayalerts = True '开启提示
End Sub
PS:上面代码中黑色字体部分“Set a = Application.InputBox(prompt:='选择要删除的工作表名称单元格区域', Type:=8)”是设置一个单元格选择框,可以在执行代码的时候让我们自由选择任意单元格区域并返回单元格区域的引用。
添加一个用于执行VBA代码的按钮,并指定要执行的代码
最终效果如下:
PS:弹出选择框后除了可以拖动选取单元格区域之外,还可以在输入框中手动输入单元格区域(例如直接输入 A2:A31)哦。
在VBA中,Application.InputBox 方法是一个很有意思的用法,可以让VBA代码中数据的选择区域更灵活,大家如果想了解更多更详细的Application.InputBox的用法,就请继续关注咱们公众号的每日文章分享吧,总有一篇是你需要的。
第281天的坚持,离365天的小目标还剩84天
我的Excel,天天与你不见不散



