尝试创建一个将在特定表格上开始和结束的循环

时间:2012-11-26 17:41:38

标签: excel loops excel-vba excel-2007 vba

我是VBA的新手。我正在尝试创建一组代码,允许我在一组工作表之间启动和停止循环。

背景:我有一个文件,用于更新财务分析的几个重要因素,并将某些选项卡组合在一起。由于此文件总是添加和减去选项卡,因此我无法为一定数量的工作表设置循环。我确实有一组从不在每个分组之间移动的选项卡。

所以我想创建一个循环,它将从选项卡“X + 1”开始并循环,直到它到达选项卡“Y-1”,因为我不希望循环到交流。我之间的代码已经编写完成了,但我还不是很擅长循环。

2 个答案:

答案 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这样的状态相关变量。