Giải thích lỗi Method 'PrintOut' of object 'Sheets' failed

Liên hệ QC

tuanh1979

Thành viên chính thức
Tham gia
7/7/07
Bài viết
57
Được thích
0
Mình loát file tríchbangdiemtong.xls trong diễn đàn này( ở mục nào mình k nhớ). Trong file execl này co tạo 2 nút Print one và Print All. Mính copy đoạn code vào file của mình nhưng khi chạy nó báo Run-time error '1004' Method 'PrintOut' of object 'Sheets' failed. Mình mới tiếp cận VB nên tìm mãi không ra cách khắc phục. Nhở mọi người chỉ giùm vơi. Cảm ơn nhiều nhiều
 
Đoạn code đó như thế này
Sub One()
ActiveSheet.PageSetup.PrintArea = "$A$2:$AK$43"
ActiveSheet.PageSetup.Orientation = xlLandscape
Sheets.PrintOut
End Sub
Sub All()
Dim i As Integer
Application.ScreenUpdating = False
ActiveSheet.PageSetup.PrintArea = "$K$48:$AC$70"
ActiveSheet.PageSetup.Orientation = xlPortrait
Range("e52").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(R52C4,MaHS,2,0)"
For i = 1 To ActiveSheet.Range("SSV").Value
Range("D52").Value = i
Sheets.PrintOut
Next
Application.ScreenUpdating = True
End Sub
 
Upvote 0
Phần trên thì mình hiểu nhưng câu lệnh
ActiveCell.FormulaR1C1 = "=VLOOKUP(R52C4,MaHS,2,0)"
For i = 1 To ActiveSheet.Range("SSV").Value
Range("D52").Value = i
thì mình không hiểu, mong chỉ giáo
 
Upvote 0
tuanh1979 đã viết:
Phần trên thì mình hiểu nhưng câu lệnh
ActiveCell.FormulaR1C1 = "=VLOOKUP(R52C4,MaHS,2,0)"
For i = 1 To ActiveSheet.Range("SSV").Value
Range("D52").Value = i
thì mình không hiểu, mong chỉ giáo

Chào bạn,

Cách dễ nhất là bạn gửi file đang bị lỗi lên để mọi người chỉnh lại giúp bạn. Mình xin giải thích đoạn code trên:

ActiveCell.FormulaR1C1 = "=VLOOKUP(R52C4,MaHS,2,0)"
Nghĩa là gán công thức =VLOOKUP(R52C4,MaHS,2,0) vào ô hiện hành. MaHS là tên (name) một vùng nào đó trên bảng tính. Bạn xem lại trong file bạn copy đoạn code này sang có Name này chưa?

Đọc thêm bài Các loại tham chiếu dưới chữ ký của mình để hiểu về Kiểu tham chiếu R1C1.

For i = 1 To ActiveSheet.Range("SSV").Value
Range("D52").Value = i

Chỉ là vòng lặp bình thường chạy từ i=1 đến giá trị lấy từ Name "SSV". (Bạn xem lại Name SSV có chưa?). Sau đó gán giá trị thứ i vào ô D52.

TP.
 
Upvote 0
Mình gửi file lên nhờ mọi người xem giúp, còn phần sau mình sẽ nghiên cứu thêm chút nữa rồi nhờ mọi người sau nhé. thank
 

File đính kèm

Upvote 0
Tôi tải file này và thấy cũng báo lỗi giống bạn nói... Tôi cũng phát hiện ra 1 sheet ẩn mang tên 00000000, xóa sheet này thì hết lỗi ngay
ANH TUẤN
 
Upvote 0
Mình ko xoá được, k có file nào ẩn cả, trong cửa sổ của VB cũng có sheet 00000 nhưng k thể xoá được.
 
Upvote 0
Xóa dc chứ sao ko... Trong cửa sổ VBE, bạn vào menu View, chọn mục Properties Window... Bấm chọn sheet 00000000 rồi nhìn mục Visible ở bên dưới cùng (trong cửa sổ Properties đó).. đỗi tham số mục Visible thành -1- xlSheetVisible... Đóng cửa sổ VBE lại bạn sẽ nhìn thấy sheet 00000000 hiện ra, click phải trên sheet tab và delete thôi...
Mến
ANH TUẤN
 
Upvote 0
Mình làm theo hướng dẫn nhưng k được, màn hình báo
Unable to set the Visible property of the Worksheet class
Chẳng hiểu sao khi mình chọn -1- .... thì nó lại nhảy trở về 2....
 
Upvote 0
Chán quá... làm luôn cho bạn luôn nè...
ANH TUẤN
 

File đính kèm

Upvote 0
Hì hì, thank ban nhé. Mình mới học VB mà nên chẳng biết gì cả. Nhưng k biết là lỗi gì bạn nhỉ. Mình dịch đoạn code từ phần Sub All ....đến End sub như thế này bạn xem có đúng k nhé.
Gán cho biến i là số integer
Cung cấp.update màn hình = k thực hiện
tại sheet hiện hành. cài đặt trang in. chọn vùng in = "$K$48:$AC$70
tại sheet hiện hành. cài đặt trang in. định hướng trang in = in ngang
chon ô E52
tại ô hiện hành. gán công thức FormulaR1C1= " VLOOKUP( Ô tham chiếu là R52C4, bảng dữ liệu là MaHS, cột thứ hai,0)
Vòng lặp for i = 14 đến giá trị của ô SSV( trong file đó SSV= counta(đếm số sinh viên của lớp)
Giá trị của ô D52 được gán bằng i
In sheet đó.
Next với giá trị khác của i
Cung cấp.update màn hình =thực hiện
Kết thúc
Tại những phần mình tô đậm mình k hiểu. Nhở thấy chỉ thêm nhé, mong thầy giáo đừng nản vì học trò dốt nhé. Thank bạn
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom