我试图在工作簿中打印许多工作表,但前提是某个单元格中某个单元格的该工作表上有“打印”。我无法使循环遍历各个选项卡并在最后一个选项卡处停止。这是一些尝试
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”然后 如果结束
答案 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