Macro nhập dữ liệu

Liên hệ QC

thanhle

Thành viên mới
Tham gia
2/12/06
Bài viết
21
Được thích
19
Tôi có viết một macro dùng để lấy dữ liệu từ một Workbook khác (chưa mở) như sau:

Sub Thongke_Canam()
Dim c As Integer

Worksheets("HK-HLcanam").Activate
n = 1
For c = 3 To 11
Cells(9, c) = Workbooks("9.1.xls").Worksheets("TongKet").Cells(12, n)
n = n + 1
Next

End Sub

Khi chạy macro thì bị báo lỗi: Subscript out of range, nhưng khi đổi địa chỉ tham chiếu trong activeWorksheet thì có kết quả.
Xin các bạn chỉ giúp tôi phải sửa sao cho đúng.
 
Dear thanhle,
-------------
"Subscript out of range" cho bạn biết vùng dữ liệu tham chiếu không hợp lệ (không tồn tại).
Trước hết phải hiểu cách mà bạn thống kê cả năm (Thongke_Canam) có phải như sau: Điền số liệu tương ứng trong vùng Tongket!$A$12:$I$12 trong Workbook [9.1.xls] vào vùng HK-HLcanam!$C$9:$K$11 của Workbook hiện hành.
Như vậy các trường hợp mà "Subscript out of range" có thể xảy ra:
- Worksheets("HK-HLcanam") không tồn tại
- Workbooks("9.1.xls") không tồn tại hoặc chưa mở
- Worksheets("TongKet") không tồn tại
Nếu thủ tục trên của bạn "dùng để lấy dữ liệu từ một Workbook khác (chưa mở)" thì mình e là không thực hiện được. Trên diễn đàn có nhiều bài viết liên quan đến kỹ thuật này rồi, bạn chịu khó tìm đọc.
Tiện thể mình chỉnh lại vòng lặp của bạn một chút cho dễ hiểu hơn:
Mã:
Sub Thongke_Canam()
Dim c As Integer
Worksheets("[I]HK-HLcanam[/I]").Activate
For c = 1 To 9
    Cells(9, c + 2) = Workbooks("[I]9.1.xls[/I]").Worksheets("[I]TongKet[/I]").Cells(12, c + 2)
Next
End Sub
Chúc bạn thành công!
 
Upvote 0
Web KT
Back
Top Bottom