版权声明:一起学习,一起成长,欢迎关注 奔跑的犀牛先生 https://blog.csdn.net/xuemanqianshan/article/details/89221660
卧槽
为什么VBA这么灵活,一个问题,百度下有好多种答案!
虽然有些错的,大多数不同的方法还都能行,佩服!
这个出错语句判断这个真好
Sub t1()
a = InputBox("请输入要查找的sheet名")
On Error GoTo 100
Sheets(a).Select
MsgBox ("您查找的名为 " & a & " 的sheet已存在")
Exit Sub
100:
Worksheets.Add after:=Worksheets(1)
ActiveSheet.Name = a
MsgBox ("您查找的名为 " & a & " 的sheet不存在,所以现在重新创建了!")
End Sub
我的思路
一般就是循环查找,逐个判断每个表名是否与要查找的相同
Sub t2()
Dim sh As Worksheet
a = InputBox("请输入你要查找的sheet名")
For Each sh In Worksheets
If sh.Name = a Then
MsgBox ("您输入的sheet " & a & " 已经存在")
Exit For
Else
Worksheets.Add
ActiveSheet.Name = a ' activeworksheet不行?
MsgBox ("您输入的sheet " & a & " 不存在," & "因此创建了新sheet")
Exit For '不加这个会重新出错,会重复创建新表冲突? 因为if在for内部
End If
Next sh
End Sub