VBA 如何判断1个sheet是否存在于某个workbook里?如果没有就创建一个

版权声明:一起学习,一起成长,欢迎关注 奔跑的犀牛先生 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

猜你喜欢

转载自blog.csdn.net/xuemanqianshan/article/details/89221660
vba
今日推荐