Vba 对于Workbook.sheets中的每个工作表-是否相反?

Vba 对于Workbook.sheets中的每个工作表-是否相反?,vba,excel,foreach,Vba,Excel,Foreach,我对.Worksheets中的每一张工作表使用,以自动生成报告……最后我意识到为什么前几张工作表上的数字不存在……它们是从后面的工作表中提取的 但是,需要保留或至少恢复图纸的顺序,因为这是管理层使用它们的方式。如果我可以在输入数据时按相反的顺序进行,那么工作表引用应该不会有问题 是否有办法对工作表步骤1中的每张工作表执行 或者我需要移动工作表…循环,输入数据,运行计算…然后将工作表移回?或者使用索引并向后循环?有什么建议吗?可能是这样的: Sub LoopSheetsBackwards() D

我对.Worksheets中的每一张工作表使用
,以自动生成报告……最后我意识到为什么前几张工作表上的数字不存在……它们是从后面的工作表中提取的

但是,需要保留或至少恢复图纸的顺序,因为这是管理层使用它们的方式。如果我可以在输入数据时按相反的顺序进行,那么工作表引用应该不会有问题

是否有办法对工作表步骤1中的每张工作表执行


或者我需要移动工作表…循环,输入数据,运行计算…然后将工作表移回?或者使用索引并向后循环?有什么建议吗?

可能是这样的:

Sub LoopSheetsBackwards()

Dim i As Long

For i = ThisWorkbook.Sheets.Count To 1 Step -1
    Debug.Print Sheets(i).Name ' <--for debug - show sheet name
Next

End Sub
Sub-LoopSheetsBackwards()
我想我会坚持多久
对于i=ThisWorkbook.Sheets.Count,计数为1步骤-1

调试。打印表(i)。每个
的名称“
”只朝一个方向。如果您需要反转,则使用
For
步骤-1
。我只想说使用
For I=Sheets。数到步骤-1
,然后将每张图纸作为
图纸(I)
引用。这可能不是您想要的,但对于每个
循环使用
,要比颠倒工作表的顺序容易得多。请注意,在迭代对象集合时,
对于每个
的性能优于
对于…下一个
<代码>工作表就是这样一种对象集合。对每个对象进行反向操作会更容易,但这正好满足我的需要,谢谢。@Rdster我从来没有在任何语言中见过“对每个对象进行反向操作”循环。我也是,但这并不意味着我不希望自己不知道它。我认为能够向前或向后遍历一个集合就足够方便了,它可以在某个地方实现……但我想不是。