因小弟工作需要,有個Excel檔案,需要按列印時,就可以雙面列印,不需在設定印表機,今早有測試如下的語法,是不錯使用,但列印第一面後,還需要手動的方式在列印另一面,感覺上不是很方便,那如下的語法是否可以修改只要按列印圖示,都會雙面列印!那是否可以若有第二頁的資料的話,就自動抓取第一頁的資料,雙面列印!
Sub 手動雙面列印()
Dim Pages As Long
Dim myBottonNum As Integer
Dim myPrompt1 As String
Dim myPrompt2 As String
myPrompt1 = "在列印時發生錯誤,請檢查你的列印機設定"
myPrompt2 = "請將出紙器中已列印好一面的紙取出並將其放回到送紙器中,然後按下""確定"",繼續列印"
Pages = ExecuteExcel4Macro("Get.Document(50)") '統計總頁數
On Error Resume Next
If (Pages = 0) Then '如果為零,說明沒有可列印內容,結束程序
MsgBox "Microsoft Excel 未發現任何可以列印的內容", 0 + 48
Exit Sub
End If
If (Pages = 1) Then '判斷是否只有一頁,如果是,只列印第一頁,然後結束
ActiveSheet.PrintOut
If Err.Number = 1004 Then
MsgBox myPrompt1, 0 + 48 '提示用戶發生列印錯誤
End If
Exit Sub
End If
For i = 1 To Pages Step 2 '設定循環,列印奇數頁
ActiveSheet.PrintOut From:=i, To:=i
If Err.Number = 1004 Then
MsgBox myPrompt1, 0 + 48
Exit Sub
End If
Next i
myBottonNum = MsgBox(myPrompt2, 1 + 48) '提示用戶取出紙張,驗證後繼續列印
If (myBottonNum = 1) Then
For j = 2 To Pages Step 2 '列印偶數頁
ActiveSheet.PrintOut From:=j, To:=j
Next j
End If
End Sub
Sub 手動雙面列印()
Dim Pages As Long
Dim myBottonNum As Integer
Dim myPrompt1 As String
Dim myPrompt2 As String
myPrompt1 = "在列印時發生錯誤,請檢查你的列印機設定"
myPrompt2 = "請將出紙器中已列印好一面的紙取出並將其放回到送紙器中,然後按下""確定"",繼續列印"
Pages = ExecuteExcel4Macro("Get.Document(50)") '統計總頁數
On Error Resume Next
If (Pages = 0) Then '如果為零,說明沒有可列印內容,結束程序
MsgBox "Microsoft Excel 未發現任何可以列印的內容", 0 + 48
Exit Sub
End If
If (Pages = 1) Then '判斷是否只有一頁,如果是,只列印第一頁,然後結束
ActiveSheet.PrintOut
If Err.Number = 1004 Then
MsgBox myPrompt1, 0 + 48 '提示用戶發生列印錯誤
End If
Exit Sub
End If
For i = 1 To Pages Step 2 '設定循環,列印奇數頁
ActiveSheet.PrintOut From:=i, To:=i
If Err.Number = 1004 Then
MsgBox myPrompt1, 0 + 48
Exit Sub
End If
Next i
myBottonNum = MsgBox(myPrompt2, 1 + 48) '提示用戶取出紙張,驗證後繼續列印
If (myBottonNum = 1) Then
For j = 2 To Pages Step 2 '列印偶數頁
ActiveSheet.PrintOut From:=j, To:=j
Next j
End If
End Sub