Excel 删除工作表错误
我正在尝试删除除工作表1之外的所有工作表。除第1页外,我不知道工作表的名称。因此,我使用了for循环,但它总是在行工作表上给出一个超出范围的下标错误。删除感谢您的帮助Excel 删除工作表错误,excel,vba,Excel,Vba,我正在尝试删除除工作表1之外的所有工作表。除第1页外,我不知道工作表的名称。因此,我使用了for循环,但它总是在行工作表上给出一个超出范围的下标错误。删除感谢您的帮助 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 Workshe
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
我没有测试这一点,但试着按相反的顺序逐步检查这些表。您可能正在删除其中一个工作表,然后尝试在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
我没有测试这一点,但试着按相反的顺序逐步检查这些表。您可能正在删除其中一个工作表,然后尝试在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
有点不清楚你到底想保留哪张床单,但这是怎么回事?我假设您希望保留,然后清除,
工作表(“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
有点不清楚你到底想保留哪张床单,但这是怎么回事?我假设您希望保留,然后清除,
工作表(“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
我建议您更改
工作表。删除为工作表。删除(与计数器和名称一致),但您可以合并s=ActiveWorkbook.Sheets(y)。名称/工作表。将作为工作表(y)删除。无论如何,删除。何必麻烦s
,为什么不干脆ActiveWorkbook.Sheets(y).删除z
也是多余的,未使用的变量在此上下文中不起任何作用,您可以放心地忽略它。@YowE3K很公平。我复制了原始帖子,只更新了For循环的顺序。我将根据您的建议编辑我的答案。@DavidZemens-我希望您的意思是可以使用For y=ActiveWorkbook.Sheets.Count To 2 Step-1将y=z的替换为2 Step-1
。目前仍然需要z
。@DavidZemens-是的,这更令人担忧-我讨厌看起来太像对象名称的变量名称。我建议您更改工作表。删除到工作表。删除(与计数器和名称一致),但是你可以合并s=ActiveWorkbook.Sheets(y)。命名/工作表。删除为工作表(y)。无论如何删除。为什么要麻烦s
,为什么不简单地ActiveWorkbook.Sheets(y)。删除z
也是多余的,未使用的变量在此上下文中不起任何作用,您可以放心地忽略它。@YowE3K很公平。我复制了原始帖子,只更新了For循环的顺序。我将根据您的建议编辑我的答案。@DavidZemens-我希望您的意思是可以使用For y=ActiveWorkbook.Sheets.Count To 2 Step-1将y=z的替换为2 Step-1
。目前仍然需要z
。@DavidZemens-是的,这更令人担忧-我讨厌看起来太像对象名的变量名。仅供参考:Dim z,y作为整数
只将y
设置为整数
z
是默认值(变量
)。这对我来说有点不直观,但如果要将z和y都设置为整数,则需要将z设置为整数,y设置为整数。另外,是否要保留工作表(1)
或工作表(“工作表1”)
?它们不一定是同一件事。仅供参考:Dim z,y为整数
仅将y
设置为整数
z
是默认值(变量
)。这对我来说有点不直观,但如果要将z和y都设置为整数,则需要将z设置为整数,y设置为整数。另外,是否要保留工作表(1)
或工作表(“工作表1”)
?他们不一定是同一件事。