使用 Application.CommandBars.ExecuteMso "PrintPreviewAndPrint" 的 Excel 宏,并选择工作表组



我正在尝试创建一个宏,该宏选择多个工作表,然后显示显示打印预览的Excel打印对话框,从而使用户可以选择打印机、副本数量等。到目前为止,我有以下内容:

Sub PrintReport()
'
' PrintReport Macro
'
'
Sheets(Array("Cover page", "Scoresheet")).Select
Sheets("Cover page").Activate
Application.CommandBars.ExecuteMso "PrintPreviewAndPrint"

End Sub

到目前为止,这是我找到的唯一一个显示正确对话框的代码,但组工作表选择的两行(由记录宏函数创建(不起作用,即只有一个工作表可供打印。我推断ExecuteMso函数可能在初始化期间清除了选择。有人能建议一种方法来得到我想要的东西吗?

我不是专家,只是新来的,但我发现这段代码贯穿了我在Plist(我想打印的图纸列表(中选择的所有图纸,将它们放在一个数组中,然后打开打印预览页,准备打印。

这可能有帮助吗?

Sub Print_sh()
'multiple sheet printing
Dim SHT As Long, RN As Long
Dim SHEETARRAY() As String
Dim WP As Variant
Dim I As Long

With ActiveSheet.PList
'(Plist is a list of sheets i want printed)
For SHT = 0 To .ListCount - 1
If .Selected(SHT) Then
ReDim Preserve SHEETARRAY(RN)
SHEETARRAY(RN) = .Column(1, SHT)
RN = RN + 1
End If
Next SHT
End With
For Each WP In SHEETARRAY
Sheets(WP).Activate

Sheets(SHEETARRAY()).PrintPreview

祝你好运,我确信某个地方有错误,有更聪明的人可以帮助我们做得更好。它可能会让你开始?

最新更新