ABCD SPACE个人博客上线啦~~~

VBA判断工作表是否存在

您可以在大约3分钟内阅读这篇文章。
VBA判断工作表是否存在

函数

' 函数名称:comm_isSheetExists
' 功能:判断工作表是否存在
' 说明:在指定的工作簿中根据工作表名称查询工作表是否存在。前提:工作簿已经打开。
' 参数:
'   - inWorkBook:工作簿对象
'   - checkSheetName:需要判断的工作表名称
' 返回值:True(存在)、False(不存在)
Public Function comm_isSheetExists(inWorkBook As Workbook, checkSheetName As String) As Boolean
    Dim oneSheet As Worksheet   ' 循环使用的临时sheet对象
    
    ' 循环取得参数设定的工作簿的每一个sheet对象
    For Each oneSheet In inWorkBook.Sheets
        ' 当次循环的工作表名称与参数的工作表名称一致时,返回True,函数结束。
        If oneSheet.Name = checkSheetName Then
            comm_isSheetExists = True
            Exit Function
        End If
    Next
    
    ' 循环结束后,函数仍未结束,代表没有找到指定的工作表名称,则返回False,函数结束。
    comm_isSheetExists = False
End Function

演示

判断VBA程序所在工作簿中的工作表是否存在

■VBA程序所在的工作簿

VBA程序所在的工作簿

1、工作表存在

' 演示代码
Debug.Print comm_isSheetExists(ThisWorkbook, "文件输出")

■执行结果

执行结果

2、工作表不存在

' 演示代码
Debug.Print comm_isSheetExists(ThisWorkbook, "新建工作表")

■执行结果

执行结果

判断其他打开工作簿中的工作表是否存在

■其他工作簿

判断其他打开工作簿中的工作表是否存在

1、工作表存在

' 演示代码
Dim otherWorkBook As Workbook   ' 工作簿对象
' 打开工作簿
Set otherWorkBook = Workbooks.Open("D:\VBA\测试.xlsx")
' 调用函数
Debug.Print comm_isSheetExists(otherWorkBook, "工作表2")

■执行结果

执行结果

2、工作表不存在

' 演示代码
Dim otherWorkBook As Workbook   ' 工作簿对象
' 打开工作簿
Set otherWorkBook = Workbooks.Open("D:\VBA\测试.xlsx")
' 调用函数
Debug.Print comm_isSheetExists(otherWorkBook, "新建工作表")

■执行结果

执行结果

谢谢打赏

评论