我要用宏新建一个sheet,但是可能重名,有没有哪个方法直接判断这个名字的sheet是否存在?

解决方案 »

  1.   

    For l = 1 To Worksheets.Count
        If Worksheets(l).Name = sYourSheetName Then
            Msgbox "Sheet already exist!"
            Exit For
        End If
    Next l
      

  2.   

    用VBA吧,程序你拿去自己调整一下就好了
    Sub ExistSheet()
     Dim ws As WorksheetsYourSheetName = InputBox("你要增加的表名")  
    ExistFlag = 1SheetCounter = 1For Each ws In WorksheetsIf ws.Name = sYourSheetName Then
      
    ExistFlag = 0
    Exit For
    End If
    SheetCounter = SheetCounter + 1
    NextIf ExistFlag = 1 Then
    '可以增加你需要的Sheets
    Else
    MsgBox ("你要新增的表格存在")
    End IfEnd Sub
      

  3.   

    抢点分,呵呵
    Sub Macro1()
        Dim sheetObj As Worksheet
        For Each sheetObj In ThisWorkbook.Worksheets
            MsgBox sheetObj.Name
        Next
    End Sub
      

  4.   

    上面几位的遍历方法比较实在,不过比较慢,我一直在用的:Function fnShtExist(wkbook As Workbook, ShtName As String) As Boolean
        On Error Resume Next
        Dim Sht As Worksheet
        Set Sht = wkbook.Worksheets(ShtName)
        If Not Sht Is Nothing Then fnShtExist = True
    End Function
      

  5.   

    从表面上看,没有进行遍历。
    但其实质呢?执行:
    Set Sht = wkbook.Worksheets(ShtName)
    时,在其“内部”也不需要进行“遍历”吗?