我正在尝试删除除了工作表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
答案 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