我的代码目前为:
Sub delsheets()
For i = 1 To 9 Step 1
Worksheets(i + 3).Delete
Next i
End Sub
我的工作簿总共有12张。
我已经步入宏并看到宏通过向后删除纸张并在步骤2中执行,即使我已经指定了步骤1-即删除的进展:纸张12,纸张10,纸张8,纸张6,纸张4。
我不知道为什么会这样,我希望我的宏能够以正常的方式执行。
我非常感谢为什么会发生这种情况!
答案 0 :(得分:5)
你想要倒退。
使用索引号而不是表名时,它使用底部选项卡的顺序。
因此,当向前迭代时,当您删除工作表(4)时,工作表(5)现在变为工作表(4)并被跳过。
所以它会相互跳过1.将你的循环改为9到1步-1。它不会跳过任何表格。
使用工作表名称删除或向后循环:
Sub delsheets()
For i = 9 to 1 Step -1
Worksheets(i + 3).Delete
Next i
End Sub
如果工作表的名称为1, 2,...
,请使用:
Sub delsheets()
For i = 1 to 9
Worksheets(Cstr(i + 3)).Delete
Next i
End Sub
将数字更改为字符串将删除名为4,5,6,...,12
的工作表