删除工作表错误

时间:2017-05-02 01:55:23

标签: excel vba

我正在尝试删除除了工作表1之外的所有工作表。我不知道除工作表1之外的工作表的名称。因此,我使用了for循环,但它一直给出超出范围的下标的错误line 工作表。删除提前感谢您的帮助。

Sub clear()
Dim z, y As Integer
Dim s As String
Dim sheet As Worksheet
z = ActiveWorkbook.Sheets.Count
For y = 2 To z Step 1
s = ActiveWorkbook.Sheets(y).Name
Worksheets(s).Delete
Next y
Sheet1.Cells.clear
End Sub

2 个答案:

答案 0 :(得分:3)

有点不清楚你真正想要保留哪张纸,但这是怎么回事?我假设您要保留,然后清除,Sheets("Sheet1")。如果没有,只需将其编辑为您想要保留/清除的工作表。

Sub clear()
Dim sheet As Worksheet
For Each sheet In ActiveWorkbook.Sheets
    If sheet.Name <> "Sheet1" Then sheet.Delete
Next sheet
Sheets("Sheet1").Cells.clear
End Sub

如果你想保留Sheet(1),那么你会这样做:

Sub clear()
Dim sheet As Worksheet
For Each sheet In ActiveWorkbook.Sheets
    If sheet.Index <> 1 Then sheet.Delete
Next sheet
Sheets(1).Cells.clear
End Sub

答案 1 :(得分:1)

我没有对此进行测试,但尝试以相反的顺序单步执行。您可能正在删除其中一个工作表,然后尝试在for循环中引用它

Sub clear()

    Dim z, y As Integer
    z = ActiveWorkbook.Sheets.Count
    For y = z To 2 Step -1
        ActiveWorkbook.Sheets(y).Delete
    Next y
    Sheet1.Cells.clear
End Sub