我是VBA的新手。我正在尝试创建一组代码,允许我在一组工作表之间启动和停止循环。
背景:我有一个文件,用于更新财务分析的几个重要因素,并将某些选项卡组合在一起。由于此文件总是添加和减去选项卡,因此我无法为一定数量的工作表设置循环。我确实有一组从不在每个分组之间移动的选项卡。
所以我想创建一个循环,它将从选项卡“X + 1”开始并循环,直到它到达选项卡“Y-1”,因为我不希望循环到交流。我之间的代码已经编写完成了,但我还不是很擅长循环。
答案 0 :(得分:0)
Dim i as integer
For i = X+1 to Y-1
Sheets(i).Select
.... your code
Next i
答案 1 :(得分:0)
在当前工作簿中循环遍历多个工作表的正确方法是:
Dim i As Integer
Dim wrksheet As Worksheet
For i = 1 To Sheets.Count
Set wkrsheet = ThisWorkbook.Sheets(i)
'Do work on wrksheet object
Next i
您可以通过从大于1的数字开始或以小于Sheets.Count的数字结束来循环遍历Sheets集合的任何子集,但请确保不要超过这些边界。
如果您希望过滤掉某些工作表,可以通过选中wrksheet.Name
来跳过基于工作表名称的逻辑。
确保您没有使用涉及Sheet.Select
或.Activate
的逻辑,这只会带来麻烦。您的代码应始终通过直接引用对Worksheet对象进行操作,而不是依赖于像ActiveSheet
这样的状态相关变量。