遍历目录,打开工作簿,打印选定的工作表
Loop through directory, open workbook, print selected worksheets
我有大约 50 个工作簿,其中有 3 个工作表,我需要打印前 2 个。工作表的名称将保持不变,所以这应该不会太难。
我在 VBA 中写了以下内容,它没有出错,但我的打印机没有打印任何东西。我错过了什么?
Sub Loop2()
Dim StrFile As String
Dim WSCount As Integer
Dim sh As Worksheet
StrFile = Dir("c:\temp\*.xls*")
Do While Len(StrFile) > 0
Debug.Print StrFile
StrFile = Dir
For Each sh In ActiveWorkbook.Worksheets
If (sh.Name <> "Credits") Then
sh.PrintOut
End If
Next sh
Loop
End Sub
如果我使用 MsgBox
作为脚手架,我确实得到了文件和它们的工作表,但没有打印。
我看到两个问题
- 你在哪里打开工作簿?
- 您需要将
StrFile = Dir
移动到 Loop
之前。使用此命令,您可以告诉它查找下一个文件。
试试这个(未测试)
Sub Loop2()
Dim StrFile As String
Dim WSCount As Integer
Dim sh As Worksheet
Dim wb As Workbook
StrFile = Dir("c:\temp\*.xls*")
Do While Len(StrFile) > 0
Set wb = Workbooks.Open("c:\temp\" & StrFile)
For Each sh In wb.Worksheets
If (sh.Name <> "Credits") Then
sh.PrintOut
DoEvents
End If
Next sh
wb.Close (False)
StrFile = Dir
Loop
End Sub
如果您想打印问题中提到的前两张纸,请执行此操作。这不会检查工作表的名称
Sub Loop2()
Dim StrFile As String
Dim WSCount As Integer
Dim wb As Workbook
StrFile = Dir("c:\temp\*.xls*")
Do While Len(StrFile) > 0
Set wb = Workbooks.Open("c:\temp\" & StrFile)
wb.Sheets(1).PrintOut
DoEvents
wb.Sheets(2).PrintOut
wb.Close (False)
StrFile = Dir
Loop
End Sub
我有大约 50 个工作簿,其中有 3 个工作表,我需要打印前 2 个。工作表的名称将保持不变,所以这应该不会太难。
我在 VBA 中写了以下内容,它没有出错,但我的打印机没有打印任何东西。我错过了什么?
Sub Loop2()
Dim StrFile As String
Dim WSCount As Integer
Dim sh As Worksheet
StrFile = Dir("c:\temp\*.xls*")
Do While Len(StrFile) > 0
Debug.Print StrFile
StrFile = Dir
For Each sh In ActiveWorkbook.Worksheets
If (sh.Name <> "Credits") Then
sh.PrintOut
End If
Next sh
Loop
End Sub
如果我使用 MsgBox
作为脚手架,我确实得到了文件和它们的工作表,但没有打印。
我看到两个问题
- 你在哪里打开工作簿?
- 您需要将
StrFile = Dir
移动到Loop
之前。使用此命令,您可以告诉它查找下一个文件。
试试这个(未测试)
Sub Loop2()
Dim StrFile As String
Dim WSCount As Integer
Dim sh As Worksheet
Dim wb As Workbook
StrFile = Dir("c:\temp\*.xls*")
Do While Len(StrFile) > 0
Set wb = Workbooks.Open("c:\temp\" & StrFile)
For Each sh In wb.Worksheets
If (sh.Name <> "Credits") Then
sh.PrintOut
DoEvents
End If
Next sh
wb.Close (False)
StrFile = Dir
Loop
End Sub
如果您想打印问题中提到的前两张纸,请执行此操作。这不会检查工作表的名称
Sub Loop2()
Dim StrFile As String
Dim WSCount As Integer
Dim wb As Workbook
StrFile = Dir("c:\temp\*.xls*")
Do While Len(StrFile) > 0
Set wb = Workbooks.Open("c:\temp\" & StrFile)
wb.Sheets(1).PrintOut
DoEvents
wb.Sheets(2).PrintOut
wb.Close (False)
StrFile = Dir
Loop
End Sub