【发布时间】:2014-01-28 22:00:32
【问题描述】:
我正在编写一个宏来复制工作表并将其添加到工作簿中的特定位置。此宏将用于具有不同工作表数量的工作簿,因此我希望它继续复制和添加工作表,直到没有更多工作表。
Sub Macro()
Dim x As Integer
For x = 3 To Sheets.Count Step 3
Sheets(x).Select
Sheets(x).Copy Before:=Sheets(x + 3)
A bunch more code...
Next
该宏显然从 3 到工作表总数运行,但由于工作表总数在每一步之后都会发生变化(由于复制/添加工作表),宏在到达工作簿末尾之前停止(我猜是因为当计数器达到 sheet.count 的起始值时它停止运行)。关于如何使宏持续到最后的任何建议? 这是我第一次写代码,所以请温柔:)
【问题讨论】:
-
为什么要复制工作表而不是移动它们?这似乎只会使文件膨胀而没有真正的目的......
-
我现在无法测试它(从平板电脑打字)。您可以使用递归函数或在 while 循环内再次调用计数或使用 GOTO 语句。我会尝试使用
while x<nrOfSheets进行while 循环。