如果条件循环

时间:2018-06-27 13:27:19

标签: excel vba excel-vba

我试图在工作簿中打印许多工作表,但前提是某个单元格中某个单元格的该工作表上有“打印”。我无法使循环遍历各个选项卡并在最后一个选项卡处停止。这是一些尝试

1)检查第一个标签,然后继续进行下一个-但是如何在最后一张纸上结束循环?在工作表上始终保持相同的名称

Worksheets("name of 1st worksheet").Activate  
If Range("I6") = "Print" Then
Range("a1:h16").PrintOut
End If    
Do
ActiveSheet.Next.Activate

If Range("I6") = "Print" Then
 Range("a1:h16").PrintOut
 End If

 Loop

2)(“试图选择工作表8-45)      昏昏欲睡     当我= 8至45     如果Range(“ I6”)=“ Print”然后     如果结束

2 个答案:

答案 0 :(得分:4)

使用For Each循环可有效地迭代对象集合中的所有项目。 Worksheets集合仅包含Worksheet个对象,因此比Sheets集合更喜欢它,该集合可以包含图表和其他没有Range成员的工作表类型:< / p>

Option Explicit

Sub LoopAndPrint()
    Dim ws As Worksheet        
    For Each ws In ThisWorkbook.Worksheets
        If ws.Range("I6") = "Print" Then
            ws.Range("A1:H6").PrintOut
        End If
    Next ws
End Sub

答案 1 :(得分:0)

未测试

Sub LoopSheets()
    For i = 1 To Sheets.Count
        With Sheets(i)
            If .Range("I6") = "Print" Then .Range("a1:h16").PrintOut
        End With
    Next i
End Sub