使用错误处理根据列表框值删除工作表

时间:2018-11-25 03:36:52

标签: excel vba excel-vba error-handling

因此,我有一个列表框,其中包含多个名称和一个值,该值是“所有名称”选项。选择名称后,将添加一个工作表,其中包含有关该名称的信息。选择“所有名称”后,将添加多个工作表,每个名称一个。

我正在尝试进行一些错误处理,如果有人两次选择同一名称表,则会删除现有名称表。我能够获得适用于“所有名称”功能的代码,该代码将删除除仪表板/背景数据以外的所有工作表,然后重新插入名称表。但是,在选择一个名称的情况下,我无法使用它。

这是我的错误处理代码。我有去这个OnError。对于第二部分,我仅使用一种可能的名称值John。工作表名称和列表框值将相同。

ErrorHandling:

If (Err.Number = 1004 And EmpListBox.Value = "All Names")Then
   For Each ws In Worksheets
     Select Case ws.Name
     Case "Dashboard", "Data", "Employees"
     Case Else
         ws.Delete
     End Select
   Next
'this is where it is not working
ElseIf (Err.Number = 1004 And EmpListBox.Value = "John") Then
    Sheets("John").Delete
Resume Main
End If

1 个答案:

答案 0 :(得分:1)

错误处理:

If Err.Number = 1004 Then
    If EmpListBox.Value = "All Names" Then
        For Each ws In Worksheets
            Select Case ws.Name
                Case "Dashboard", "Data", "Employees"
                Case Else
                    ws.Delete
            End Select
       Next
   Else
       Sheets(EmpListBox.Value).Delete
   End If
End If
Resume Main