→ soyoso: workbook有beforeprint事件可用,看看是否有符合 04/19 10:30
→ ptguitar: 我有用到workbook不過他會針對全部工作表 ..... 04/19 10:33
→ soyoso: 配合userform或inputbox之類請使用者輸入,輸入後再排除該 04/19 10:35
→ soyoso: 工作表 04/19 10:35
→ soyoso: 但如使用者是停用巨集或截圖方式印出的話,則無法發揮作用 04/19 10:38
→ ptguitar: 謝S大給提示 我剛試出來了 04/19 10:39
給版友若是有同樣問題可以用
Private Sub WorkBook_BeforePrint(Cancel As Boolean)
If ActiveSheet.Name = "原始資料" Then
Cancel = True
MsgBox "原始資料工作表不能印"
End If
End Sub
※ 編輯: ptguitar (60.250.67.77), 04/19/2017 10:43:16
→ soyoso: 如原po所述"他會針對全部工作表",該使用者如所在工作表並 04/19 10:48
→ soyoso: 非工作表為"原始資料"時,也是適用嗎? 04/19 10:49
→ ptguitar: 我剛試的時候好像是這樣 剛開始我只有設定cancel=true 04/19 10:58
→ ptguitar: 後來發現應該要加條件才對XD 04/19 11:02
→ soyoso: 測試,如回文所述"他會針對全部工作表",設定列印整本活頁 04/19 11:12
→ soyoso: 且不在工作表名為"原始資料"時,還是可列印工作表名為"原 04/19 11:13
→ soyoso: 始資料"內的資料 04/19 11:13
→ soyoso: 如"他會針對全部工作表",但是設定列印使用中的工作表,而 04/19 11:17
→ soyoso: 一張一張工作表印表的條件下則是有作用 04/19 11:17
→ ptguitar: 糟糕 雖說同事都是一個個印 因為那張表幾百頁是不用印 04/19 11:19
→ ptguitar: 謝謝S大的測試 我再來看看 04/19 11:20
→ soyoso: 然,如果同事是以shift方式選取連續工作表或以ctrl方式選 04/19 11:22
→ soyoso: 取不連續工作表進行列印,如activate的工作表名非"原始資 04/19 11:24
→ soyoso: 料"時,測試還是可輸出 04/19 11:25
→ soyoso: 如activate於"原始資料"反而是出現msgbox訊息,但其他應輸 04/19 11:26
→ soyoso: 出工作表也就不輸出了 04/19 11:26