我是 VBA 新手。我正在尝试创建一组代码,允许我在一组工作表之间启动和停止循环。
背景:我有一个文件用于更新财务分析的几个重要因素,并且某些选项卡组合在一起。由于此文件总是添加和减去选项卡,因此我无法为一组工作表设置循环。我确实有一组标签,它们永远不会在每个分组之间移动。
所以我想创建一个循环,从选项卡“X+1”开始并循环直到它到达选项卡“Y-1”,因为我不希望循环到 ac。中间的代码我已经编写并完成了,但我还不太擅长循环。
我是 VBA 新手。我正在尝试创建一组代码,允许我在一组工作表之间启动和停止循环。
背景:我有一个文件用于更新财务分析的几个重要因素,并且某些选项卡组合在一起。由于此文件总是添加和减去选项卡,因此我无法为一组工作表设置循环。我确实有一组标签,它们永远不会在每个分组之间移动。
所以我想创建一个循环,从选项卡“X+1”开始并循环直到它到达选项卡“Y-1”,因为我不希望循环到 ac。中间的代码我已经编写并完成了,但我还不太擅长循环。
在当前工作簿中循环多个工作表的正确方法是:
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
or的逻辑.Activate
,这只会导致麻烦。您的代码应始终通过直接引用而不是依赖状态相关变量(如ActiveSheet
.
Dim i as integer
For i = X+1 to Y-1
Sheets(i).Select
.... your code
Next i