Ken có một sổ làm việc chứa 30 trang tính. Anh ấy muốn in từ tờ 1 đến tờ 29 với màu đen trắng và tờ 30 màu. Anh ấy tự hỏi liệu có cách nào để in tất cả các trang tính cùng một lúc và chỉ định rằng một trang tính cụ thể chỉ nên in màu hay không.

Điều này được thực hiện dễ dàng nhất với macro. Tất cả những gì cần làm là đặt thuộc tính .BlackAndWhite cho mỗi trang tính ngay trước khi nó được in.

Ví dụ: hãy xem xét macro đơn giản sau:

Sub PrintSingleColorSheet()

Dim w As Worksheet     Dim S As Integer

' Set worksheet to be in color     ' (All others will print in B/W)

S = 30

For Each w In Worksheets         w.PageSetup.BlackAndWhite = True         If w.Index = S Then             w.PageSetup.BlackAndWhite = False         End If         w.PrintOut     Next w End Sub

Macro lưu trong biến S số chỉ mục của trang tính mà bạn muốn có màu. (Trong trường hợp này, số chỉ mục là 30.) Sau đó, từng trang tính được chuyển qua và thuộc tính .BlackAndWhite được đặt thành True. Tuy nhiên, nếu thuộc tính .Index cho trang tính khớp với giá trị được lưu trữ trong S, thì thuộc tính .BlackAndWhite được đặt thành False, nghĩa là nó sẽ in màu. Sau đó, bản in được gửi đến máy in mặc định.

Bạn có thể, nếu bạn muốn, trở nên đẹp hơn với macro, nghĩa là bạn có thể yêu cầu người dùng in màu trang tính nào:

Sub PrintSingleColorSheet()

Dim w As Worksheet     Dim S As Integer     Dim sTemp As String     Dim sMsg As String

sMsg = "There are " & Worksheets.Count & " worksheets in this "

sMsg = sMsg & "workbook. Please enter the number of the single "

sMsg = sMsg & "worksheet you want to print in color. (All "

sMsg = sMsg & "others will print in black and white.)"



sTemp = InputBox(sMsg)

S = Val(sTemp)

If S > 0 And S <= Worksheets.Count Then         For Each w In Worksheets             w.PageSetup.BlackAndWhite = True             If w.Index = S Then                 w.PageSetup.BlackAndWhite = False             End If             w.PrintOut         Next w     Else         sMsg = "You entered a value that is out of range."

If sTemp <> "" Then             MsgBox sMsg         End If     End If End Sub

Phiên bản này của macro yêu cầu người dùng nhập số trang tính. Nếu giá trị đã nhập nằm ngoài phạm vi, thì thông báo lỗi sẽ hiển thị và macro không in bất kỳ thứ gì. Nếu người dùng nhấp vào Hủy hoặc để trống hộp nhập, thì macro chỉ thoát ra mà không in bất cứ thứ gì.

ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.

Mẹo này (13738) áp dụng cho Microsoft Excel 2007, 2010, 2013, 2016, 2019 và Excel trong Office 365.