为什么我的VBA循环开始倒退?

时间:2016-05-05 03:40:04

标签: excel vba excel-vba loops

我的代码目前为:

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。

我不知道为什么会这样,我希望我的宏能够以正常的方式执行。

我非常感谢为什么会发生这种情况!

1 个答案:

答案 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

的工作表