Hướng dẫn sửa code in nhiều sheets theo ý muốn

Liên hệ QC

hoangpheo290193

Thành viên mới
Tham gia
20/11/19
Bài viết
31
Được thích
1
Em có ý tưởng muốn in hàng loạt nhiều sheet bằng VBA. Em đã viết code và chạy thử nhưng có vấn đề. Tuy em đã in được rồi nhưng lại xảy ra vấn đề về biến t, nó chạy không theo ý em lắm, Em chia sẻ lên đây nhờ các bác giúp em với ạ.
Code nó như thế này:
'''''
Private Sub cmb_inan2_Click()
Dim t As Integer
Dim s1 As Worksheet
Dim S2 As Worksheet
Set s1 = Sheets("A2")
Set S2 = Sheets("A4")
For t = tb3.Text To tb4.Text
Range("U1").Value = t
Sheets("CD").Select
Range("r23:r143").Select
Selection.AutoFilter
ActiveSheet.Range("r23:r143").AutoFilter Field:=1, Criteria1:="1"
Sheets(Array("A1", "A2", "A4","CD")).Select
ActiveWindow.SelectedSheets.PrintOut
Sheets("A1").Select
Next
End Sub
.......
Mục đích in hàng loạt của em các sheet đã đạt được. Tuy nhiên, em có vướng một số điều mà em vẫn chưa giải quyết được, đúng như mong muốn của em.
Đó là ví dụ khi biến t chạy từ 1 đến 3, khi biến t=2, em muốn excel chỉ in cho em sheets A1, A2, A4 nhưng không in sheets CD hoặc cũng có thể khi biến t chạy từ 4 đến 6, khi biến t=6 thì chỉ in sheets A1, A2. Các bác thông cảm cho cái mong muốn oái oăm của em vì em là dân xây dựng nên các sheet trên là các biên bản nghiệm thu, vì có công tác thì cần nhiều biên bản, có công tác thì cần ít biên bản, nên mới có chút lấn cấn như vậy.
Các bác có thể bổ sung cho em thêm dòng code nào để em có thể làm theo cái mong muốn của mình không ạ. chứ nếu làm theo cách của em in hàng loạt ra, thì phí giấy lắm, với lại là mất công dò lại tờ giấy nào thừa rồi bỏ phí. Em cảm ơn các bác ạ!
 
Em có ý tưởng muốn in hàng loạt nhiều sheet bằng VBA. Em đã viết code và chạy thử nhưng có vấn đề. Tuy em đã in được rồi nhưng lại xảy ra vấn đề về biến t, nó chạy không theo ý em lắm, Em chia sẻ lên đây nhờ các bác giúp em với ạ.
Code nó như thế này:
'''''
Private Sub cmb_inan2_Click()
Dim t As Integer
Dim s1 As Worksheet
Dim S2 As Worksheet
Set s1 = Sheets("A2")
Set S2 = Sheets("A4")
For t = tb3.Text To tb4.Text
Range("U1").Value = t
Sheets("CD").Select
Range("r23:r143").Select
Selection.AutoFilter
ActiveSheet.Range("r23:r143").AutoFilter Field:=1, Criteria1:="1"
Sheets(Array("A1", "A2", "A4","CD")).Select
ActiveWindow.SelectedSheets.PrintOut
Sheets("A1").Select
Next
End Sub
.......
Mục đích in hàng loạt của em các sheet đã đạt được. Tuy nhiên, em có vướng một số điều mà em vẫn chưa giải quyết được, đúng như mong muốn của em.
Đó là ví dụ khi biến t chạy từ 1 đến 3, khi biến t=2, em muốn excel chỉ in cho em sheets A1, A2, A4 nhưng không in sheets CD hoặc cũng có thể khi biến t chạy từ 4 đến 6, khi biến t=6 thì chỉ in sheets A1, A2. Các bác thông cảm cho cái mong muốn oái oăm của em vì em là dân xây dựng nên các sheet trên là các biên bản nghiệm thu, vì có công tác thì cần nhiều biên bản, có công tác thì cần ít biên bản, nên mới có chút lấn cấn như vậy.
Các bác có thể bổ sung cho em thêm dòng code nào để em có thể làm theo cái mong muốn của mình không ạ. chứ nếu làm theo cách của em in hàng loạt ra, thì phí giấy lắm, với lại là mất công dò lại tờ giấy nào thừa rồi bỏ phí. Em cảm ơn các bác ạ!
Bạn nên sửa tiêu đề thành: Giúp sửa code in nhiều sheet .
Chứ thế này đọc lại tưởng là bạn hướng dẫn in hàng loạt.
Bạn không gửi file nên thì hơi khó hình dung mặc dù trình bày rất dài.
 
Upvote 0
Bạn nên sửa tiêu đề thành: Giúp sửa code in nhiều sheet .
Chứ thế này đọc lại tưởng là bạn hướng dẫn in hàng loạt.
Bạn không gửi file nên thì hơi khó hình dung mặc dù trình bày rất dài.
dạ vâng, tại vì e mới định hình được mục đích in hồ sơ của em, nên e mới viết tạm code bác ạ
Bài đã được tự động gộp:

Bạn nên sửa tiêu đề thành: Giúp sửa code in nhiều sheet .
Chứ thế này đọc lại tưởng là bạn hướng dẫn in hàng loạt.
Bạn không gửi file nên thì hơi khó hình dung mặc dù trình bày rất dài.
bác có ý tưởng nào chèn thêm code để in theo ý muốn như em trình bày không ạ?
Cảm ơn bác!
 
Upvote 0
dạ vâng, tại vì e mới định hình được mục đích in hồ sơ của em, nên e mới viết tạm code bác ạ
Bài đã được tự động gộp:
Bạn đã viết code rồi thì nghiên cứu thêm điều kiện vào thôi. (Không nên viết tắt khi giao tiếp bạn nhé).
 
Upvote 0
Bạn đã viết code rồi thì nghiên cứu thêm điều kiện vào thôi. (Không nên viết tắt khi giao tiếp bạn nhé).
dạ vâng. Cảm ơn góp ý của bác, nhưng em không biết cái dòng lệnh dừng in nó viết như nào, bác có thể lấy ví dụ cho em được không ạ? Bí quá nên em không biết viết như nào. Đăng lên để nhờ các bác giúp
 
Upvote 0
dạ vâng. Cảm ơn góp ý của bác, nhưng em không biết cái dòng lệnh dừng in nó viết như nào, bác có thể lấy ví dụ cho em được không ạ? Bí quá nên em không biết viết như nào. Đăng lên để nhờ các bác giúp
Không có file mình chẳng hình dung được, (khả năng mình chưa đến mức viết theo trí tưởng tượng được).
 
Upvote 0
Thay vì dừng in thì bạn lập điều kiện để excel in đúng sheet theo ý của mình thôi

Mã:
if... ' điều kiện 1'
  Sheets(Array("A1", "A2", "A4", "CD")).Select
  ActiveWindow.SelectedSheets.PrintOut
  Sheets("A1").Select
Else
 if... 'điều kiện 2'
   Sheets(Array("A1", "A2")).Select
   ActiveWindow.SelectedSheets.PrintOut
   Sheets("A1").Select
  Else
   Sheets(Array("A1", "A2", "A4")).Select
   ActiveWindow.SelectedSheets.PrintOut
   Sheets("A1").Select
  End If
 End If
 
Upvote 0
Thay vì dừng in thì bạn lập điều kiện để excel in đúng sheet theo ý của mình thôi

Mã:
if... ' điều kiện 1'
  Sheets(Array("A1", "A2", "A4", "CD")).Select
  ActiveWindow.SelectedSheets.PrintOut
  Sheets("A1").Select
Else
 if... 'điều kiện 2'
   Sheets(Array("A1", "A2")).Select
   ActiveWindow.SelectedSheets.PrintOut
   Sheets("A1").Select
  Else
   Sheets(Array("A1", "A2", "A4")).Select
   ActiveWindow.SelectedSheets.PrintOut
   Sheets("A1").Select
  End If
 End If
vâng, em cảm ơn bác ạ. cảm ơn bác rất nhiều ạ
Bài đã được tự động gộp:

Không có file mình chẳng hình dung được, (khả năng mình chưa đến mức viết theo trí tưởng tượng được).
Dạ em cảm ơn bác. Em làm theo hướng dẫn của bác "curet" được rồi ạ. Cảm ơn các bác đã chia sẻ
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT
Back
Top Bottom