首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果WorkSheet("wsName")存在

如果WorkSheet("wsName")存在
EN

Stack Overflow用户
提问于 2011-05-18 13:13:43
回答 5查看 377.1K关注 0票数 43

我想知道如果工作簿中存在工作表,是否有干净的剪切功能返回True或False?

如果可以在不跳过错误处理的情况下做到这一点,这将是很好的,但不是必须的。

我发现唯一不起作用的是:

代码语言:javascript
复制
On Error Resume Next
If (Worksheets("wsName").Name <> "") Then
    Debug.Print "Worksheet exists!"
Else
    Debug.Print "Worksheet doesn't exist!"
End If
On Error GoTo ErrHandler
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-05-18 13:57:01

没有错误处理的版本:

代码语言:javascript
复制
Function sheetExists(sheetToFind As String) As Boolean
    sheetExists = False
    For Each sheet In Worksheets
        If sheetToFind = sheet.name Then
            sheetExists = True
            Exit Function
        End If
    Next sheet
End Function
票数 88
EN

Stack Overflow用户

发布于 2011-05-18 13:47:31

这方面没有内置的函数。

代码语言:javascript
复制
Function SheetExists(SheetName As String, Optional wb As Excel.Workbook)
   Dim s As Excel.Worksheet
   If wb Is Nothing Then Set wb = ThisWorkbook
   On Error Resume Next
   Set s = wb.Sheets(SheetName)
   On Error GoTo 0
   SheetExists = Not s Is Nothing
End Function
票数 31
EN

Stack Overflow用户

发布于 2013-06-14 00:11:24

也是一个略有不同的版本。我只是做了一个appllication.sheets.count来知道我有多少个附加的a工作表。好了,再给我改个名字

代码语言:javascript
复制
Sub insertworksheet()
    Dim worksh As Integer
    Dim worksheetexists As Boolean
    worksh = Application.Sheets.Count
    worksheetexists = False
    For x = 1 To worksh
        If Worksheets(x).Name = "ENTERWROKSHEETNAME" Then
            worksheetexists = True
            'Debug.Print worksheetexists
            Exit For
        End If
    Next x
    If worksheetexists = False Then
        Debug.Print "transformed exists"
        Worksheets.Add after:=Worksheets(Worksheets.Count)
        ActiveSheet.Name = "ENTERNAMEUWANTTHENEWONE"
    End If
End Sub
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6040164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档