Lỗi viết lệnh CommandButon

Liên hệ QC

hoangtuankhanh

Thành viên mới
Tham gia
18/3/08
Bài viết
31
Được thích
1
Nghề nghiệp
looking......
Chào cả nhà!
Em đang tập tọe sử dụng CommandButon nhưng mà viết làm lệnh nó chỉ in được một Sheet đầu rồi báo lỗi. Các bác xem hộ em rồi chỉ cho em cách khắc phục với nhé.
Cảm ơn mọi người!
 

File đính kèm

  • hoang.rar
    75.9 KB · Đọc: 21
Chào cả nhà!
Em đang tập tọe sử dụng CommandButon nhưng mà viết làm lệnh nó chỉ in được một Sheet đầu rồi báo lỗi. Các bác xem hộ em rồi chỉ cho em cách khắc phục với nhé.
Cảm ơn mọi người!
Có 2 vấn đề trao đổi với bạn:
1. Trong VBA không nhập được tiếng Việt Unicode, nên tên những đối tượng mà bạn cần gọi trong VBA không nên viết tiếng Việt có dấu.
Ví dụ bạn nên đặt tên sheet "Luu chuyen tien te" thay vì "Lưu chuyển tiền tệ"
Câu lệnh này Sheets("Luu chuy?n ti?n t?").Select báo lỗi vì làm gì có sheet tên "Luu chuy?n ti?n t?"

2. Bạn in rất nhiều sheets, mỗi sheet bạn phải viết 2 dòng lệnh:
Mã:
      Sheets("tên sheet").Select
      ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Nên viết dễ bị lỗi vì sai tên sheet. Bạn nên dùng vòng lặp duyệt qua tất cả các sheet và chỉ cho phép in khi tên sheet thỏa mãn điều kiện:
Mã:
If tên sheet <> tên 1 And tên sheet <> tên 2 And ... Then
Với tên 1, tên 2, ... là các sheet không in.
Mã:
 Private Sub CommandButton1_Click()
Dim Msg, Style, Title
Dim n As Long, i As Long, shName As String
Msg = "Ban co muon In bao cao khong?"
Style = vbYesNo + vbCritical + vbDefaultButton2
Title = "Thong bao"
Response = MsgBox(Msg, Style, Title)
If Response = vbYes Then
  n = ThisWorkbook.Sheets.Count
  For i = 1 To n
    shName = Sheets(i).Name
    If shName <> "[B]tên 1[/B]" And shName <> "[B]Tên 2[/B]" And shName <> "[B]Tên 3[/B]" Then
      Sheets(i).Select
      ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    End If
  Next
End If
End Sub
 
Web KT
Back
Top Bottom