如何使用vba删除工作表?

要使用 VBA 删除工作表,必须使用 VBA 删除方法。您需要指定要删除的工作表,然后使用此方法。假设您要删除“Sheet1”,则必须提及“sheet1”,然后键入句点 (.),最后键入“Delete”。

在本教程中,我们将了解使用 VBA 代码删除工作表的不同方法。确保功能区上有开发人员选项卡,您可以从这里访问可视化基础编辑器

使用工作表名称删除工作表

每个工作表都有一个名称,您可以使用编写代码来删除使用该名称的工作表。因此,假设您要删除“数据”工作表,代码为:

 Sub vba_delete_sheet() Sheets("Data").Delete End Sub
写入-代码-删除

删除工作表而不发出警告(提示)

当您删除工作表时,Excel 会显示一条消息以确认您是要删除还是取消它。当您使用 VBA 代码时,在这种情况下 Excel 也会执行此操作。

确认删除或取消的对话框

要解决此问题,您可以禁用屏幕更新以删除工作表,然后再启用它。

 Application.DisplayAlerts = False Sheets("Data").Delete Application.DisplayAlerts = True
禁用对话框警报

单元格的工作表名称

现在假设您想使用单元格值来使用工作表名称。在这种情况下,您需要使用VBA 范围对象来执行此操作。

使用单元格值来使用工作表名称

使用图纸编号删除图纸

这是正确的。您可以使用图纸编号将其删除。这是代码。

 Sub vba_delete_sheet() Sheets(1).Delete End Sub
使用工作表编号删除它

删除活动工作表

要删除活动工作表,可以使用“ActiveSheet”对象,而不是使用工作表名称来指定工作表。

 ActiveSheet.Delete
删除活动工作表使用活动工作表

就像我说的,这会删除活动工作表,您可以在删除它之前激活它。但显然,您不需要这样做,因为您可以引用工作表并将其删除,正如我们在本教程开头看到的那样。

删除前检查该工作表是否存在

您还可以编写代码来检查工作表是否存在,然后将其删除。

 Sub check_sheet_delete() Dim ws As Worksheet Dim mySheet As Variant mySheet = InputBox("enter sheet name") Application.DisplayAlerts = False For Each ws In ThisWorkbook.Worksheets If mySheet = ws.Name Then ws.Delete End If Next ws Application.DisplayAlerts = True End Sub
编写代码检查工作表是否存在

在此代码中,您可以使用FOR EACH来迭代所有工作表。然后,如果工作表的名称等于您在输入框中键入的名称,则使用IF 语句删除该工作表。

从工作簿中删除所有工作表

我相信您心里有这个问题,但恐怕不可能删除工作簿中的所有工作表。您至少还剩下一张工作表。

但我找到了解决这个问题的方法。您可以插入一个新的空白表,然后删除所有已有的空白表。

代码如下:此代码添加一个新工作表并删除所有其他工作表。

 Sub vba_delete_all_worksheets() Dim ws As Worksheet Dim mySheet As String mySheet = "BlankSheet-" & Format(Now, "SS") Sheets.Add.Name = mySheet Application.DisplayAlerts = False For Each ws In ThisWorkbook.Worksheets If ws.Name <> mySheet Then ws.Delete End If Next ws Application.DisplayAlerts = True End Sub

添加评论

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