Board logo

標題: 依列印份數自動產生流水號 [打印本頁]

作者: sping    時間: 2010-7-9 09:12     標題: 依列印份數自動產生流水號

本帖最後由 sping 於 2010-7-9 14:43 編輯

因工作上需要,做了一個會自動依列印份數產生流水號的檔案,流水號可以順利產製,可是如果列印10份則也會產生10次的「列印訊息方塊」(因為有時會列印100份,也會產生100次「列印訊息方塊」),不曉得各位大大有解決的辦法嗎?
[attach]1772[/attach]
作者: luhpro    時間: 2010-7-10 01:12

回復 1# sping


    抱歉, 有個地方看不懂 :

With ws
.
.
.
End With

中的 ws 不知道是代表什麼或是用在哪裡?

另上述部分程式建議若改成 :

With Sheets("申請書")
  For skb = 1 To w5
     .PrintOut
     .Range("x24").Value = .Range("x24").Value + 1
  Next skb
End With

可能會更簡潔一些.


因為剛下班到家目前手頭上沒有印表機可以模擬你所說的情形,
所以暫時只能先用猜測的.

你所說的 「列印訊息方塊」不知道是不是選擇印表機的訊息?
如果是的話可以在 expression.PrintOut(From, To, Copies, Preview, ActivePrinter, PrintToFile, Collate, PrToFileName) 內的 ActivePrinter 參數上直接指定你要用的印表機名稱,
這樣就不會再出現訊息視窗問你要用哪一台印了.

但如果只是單純顯示正在列印資料的訊息,
而 "無需人工介入操作" 才會繼續列印下一張的話,
建議你還是直接無視該訊息吧,
畢竟就如同 Office 的各個成員一樣,
當你列印時同樣會出現「列印訊息方塊」,
這是Windows系統本身接收到列印要求時所產生的回應機制.
作者: sping    時間: 2010-7-10 10:40

回復 2# luhpro

我說的列印訊息方塊就是指「單純顯示正在列印資料的訊息」,就是你說的後者,我是想找看有沒有像類似『Application.DisplayAlerts = False 』 關閉警示訊息的語法,如果沒有這種語法,那只好無視訊息的存在,只是有時候列印50份資料,訊息就跑50次,比較討厭,但還是可以完成工作。
還有謝謝你幫我把程式碼改得更簡潔了。我在vba還算初學者,還需要多跟各位前輩學習學習。
作者: mit1688    時間: 2010-12-22 12:02

我現在非常需要這項工具
可是   我卻不能下載

怎辦阿
作者: Hsieh    時間: 2010-12-22 12:22

回復 3# sping

只出現一次列印對話方塊
  1. Sub 列印申請書()
  2. Dim sh()
  3. Application.DisplayAlerts = False
  4. Sheets("申請書").Range("x24") = Sheets("輸入區").Range("b13")
  5. w5 = Application.InputBox("列印申請書多少份? ", Type:=1)
  6. If w5 < 1 Then
  7. MsgBox "未輸入正確之列印份數,無法列印申請書"
  8. Else
  9. With ws
  10.        For skb = 1 To w5
  11.        Sheets("申請書").Range("x24").Value = Sheets("申請書").Range("x24").Value + 1
  12.        Sheet2.Copy after:=Sheets(Sheets.Count)
  13.        ReDim Preserve sh(s)
  14.        sh(s) = ActiveSheet.Name
  15.        s = s + 1
  16.        Next skb
  17. End With
  18. End If
  19. Sheets(sh).PrintOut
  20. Sheets(sh).Delete
  21. Application.DisplayAlerts = True
  22. End Sub
複製代碼

作者: jangjw    時間: 2013-2-27 06:11

回復 1# sping

工作上正好會用到~只是不能下載~~




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)