Vba:如何检查工作表是否存在(举例)


您可以在 VBA 中创建以下函数来检查当前活动的 Excel 工作簿中是否存在特定工作表:

 Function sheetExists(some_sheet As String) As Boolean

On Error Resume Next
sheetExists = (ActiveWorkbook.Sheets(some_sheet).Index > 0)

End Function

此函数将返回TRUEFALSE以指示当前活动的 Excel 工作簿中是否存在特定工作表名称。

请注意,此函数只是检查工作表的索引号是否大于 0。

如果工作表存在,则工作表索引号的值至少为1 ,导致函数返回值TRUE

下面的例子展示了如何在实际中使用这个功能。

示例:使用VBA检查工作表是否存在

假设我们有以下包含三张工作表的 Excel 工作簿:

我们可以在 VBA 中创建以下函数来检查该工作簿中是否存在特定的工作表名称:

 Function sheetExists(some_sheet As String) As Boolean

On Error Resume Next
sheetExists = (ActiveWorkbook.Sheets(some_sheet).Index > 0)

End Function

然后,我们可以在当前活动工作表的单元格A1中键入以下公式来检查工作簿中是否存在工作表名称“Teams”:

 =sheetExists("Teams")

以下屏幕截图显示了如何在实践中使用该公式:

该函数返回TRUE ,因为工作簿中存在该工作表名称。

另请注意,此函数不区分大小写。

例如,如果我们检查工作表名称“teams”是否存在,那么该函数也会返回TRUE

但是,假设我们检查工作表名称“coachs”是否存在:

由于工作簿中不存在该工作表名称,因此该函数返回FALSE

其他资源

以下教程说明如何在 VBA 中执行其他常见任务:

VBA:如何计算工作簿中的工作表数量
VBA:如何从另一个工作簿中提取数据
VBA:如何插入多行

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注