Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 尝试创建在特定图纸上开始和结束的循环_Loops_Excel_Excel 2007_Vba - Fatal编程技术网

Loops 尝试创建在特定图纸上开始和结束的循环

Loops 尝试创建在特定图纸上开始和结束的循环,loops,excel,excel-2007,vba,Loops,Excel,Excel 2007,Vba,我是VBA新手。我试图创建一组代码,允许我在一组工作表之间启动和停止循环 背景:我有一个用于更新财务分析的几个重要因素的文件,某些选项卡被分组在一起。由于此文件总是添加和减去选项卡,因此我无法为设置数量的工作表设置循环。我确实有一组标签,它们永远不会在每个分组之间移动 因此,我想创建一个循环,从选项卡X+1开始循环,直到到达选项卡Y-1为止,因为我不希望循环为ac。我已经编写和计算了其中的代码,但我还不太擅长循环。在当前工作簿中循环多个工作表的正确方法是: Dim i as integer Fo

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

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


因此,我想创建一个循环,从选项卡X+1开始循环,直到到达选项卡Y-1为止,因为我不希望循环为ac。我已经编写和计算了其中的代码,但我还不太擅长循环。

在当前工作簿中循环多个工作表的正确方法是:

Dim i as integer
For i = X+1 to Y-1
   Sheets(i).Select
    .... your code
Next i
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的逻辑,这只会给以后带来麻烦。您的代码应该始终在工作表对象上直接引用,而不是依赖于依赖于状态的变量,如ActhEsHeT../P>。请考虑向您的问题添加更多的相关标签。这将提高有能力帮助的人看到它的机会。谢谢约翰。我也在想一些类似的事情,但我遇到了一点困难。出于某种原因,它一直告诉我该对象不支持该属性。我试图将X和Y=设置为图纸名称,但可能我错了。我可以不设置X=SheetsSheet1吗?或者在末尾应该有一个.Index或其他东西吗?