Lỗi code For...Next... nhờ mọi người chỉ chỗ sai :( (2 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

vipvphvtc

Thành viên mới
Tham gia
17/11/11
Bài viết
8
Được thích
0
View attachment Tonghop.xlsm
View attachment BC1.xls
View attachment BC2.xls
View attachment BC3.xls
View attachment BC4.xls
Mình có viết 1 đoạn sub để tổng hợp dữ liệu từ các báo cáo con vào báo cáo tổng hợp như sau:

Sub THBCT2()
Dim i As Integer
Dim n, m As Integer
Dim bc As String
Dim Dir As String
Dim MyPath As String

Sheets("KetQua").Rows("9:1000").Delete
Sheets("KeHoach").Rows("9:1000").Delete
Dir = Application.ActiveWorkbook.Path & ""

For i = 1 To 4
bc = "BC" & i & ".xls"
MyPath = Dir & bc

Workbooks.Open MyPath
Application.Goto Workbooks("Tonghop.xlsm").Sheets("KetQua").Range("B7")
Range(Selection, Selection.End(xlDown)).Select
m = Selection.Count

Application.Goto Workbooks(bc).Sheets("TH").Range("B1")
Range(Selection, Selection.End(xlDown)).Select
n = Selection.Count

Workbooks(bc).Worksheets("TH").Range(Cells(2, 2), Cells(n, 13)).Copy Destination:=Workbooks("Tonghop.xlsm").Worksheets("KetQua").Cells(m + 7, 2)


Application.Goto Workbooks("Tonghop.xlsm").Sheets("KeHoach").Range("B7")
Range(Selection, Selection.End(xlDown)).Select
m = Selection.Count

Application.Goto Workbooks(bc).Sheets("KH").Range("B1")
Range(Selection, Selection.End(xlDown)).Select
n = Selection.Count

Workbooks(bc).Worksheets("KH").Range(Cells(2, 2), Cells(n, 13)).Copy Destination:=Workbooks("Tonghop.xlsm").Worksheets("KeHoach").Cells(m + 7, 2)

Workbooks(bc).Close

Next i
Sheets("KetQua").Activate


Application.ScreenUpdating = False
Application.EnableEvents = False
End Sub


Nhưng mà bị lỗi là dữ liệu từ các báo cáo con luôn paste vào ô bắt đầu là B9 =====> tổng hợp sai.

Mọi người chỉ giúp mình vì sao lại thế với ạ? và sửa như thế nào ạ?
Tks All!!!/-*+/
 
Lần chỉnh sửa cuối:
PHP:
Destination:=Workbooks("Tonghop.xlsm").Worksheets( "KetQua").Cells(m + 7, 2)
Lỗi ở biến m. Qua mỗi vòng lặp phải gián giá trị lũy kế biến m.
 
Upvote 0
PHP:
Destination:=Workbooks("Tonghop.xlsm").Worksheets( "KetQua").Cells(m + 7, 2)
Lỗi ở biến m. Qua mỗi vòng lặp phải gián giá trị lũy kế biến m.
theo e hiểu như thế này thì có đúng ko ạ?
với i =1, giá trị đã được điền bắt đầu vào ô B9 (giả sử) đến ô M13,
Như vậy khi i=2, m sẽ được gán giá trị là số ô tính từ B7 đến B13 - Tức là m=7 đúng ko ạ? cứ như vậy m phải tăng dần chứ ạ??
a đả thông hộ e chỗ này với @@ e nghĩ mãi ko hiểu :(
 
Upvote 0
theo e hiểu như thế này thì có đúng ko ạ?
với i =1, giá trị đã được điền bắt đầu vào ô B9 (giả sử) đến ô M13,
Như vậy khi i=2, m sẽ được gán giá trị là số ô tính từ B7 đến B13 - Tức là m=7 đúng ko ạ? cứ như vậy m phải tăng dần chứ ạ??
a đả thông hộ e chỗ này với @@ e nghĩ mãi ko hiểu :(
Theo tôi hiểu thì nhu cầu của bạn đúng là như thế.
 
Upvote 0
theo e hiểu như thế này thì có đúng ko ạ?
với i =1, giá trị đã được điền bắt đầu vào ô B9 (giả sử) đến ô M13,
Như vậy khi i=2, m sẽ được gán giá trị là số ô tính từ B7 đến B13 - Tức là m=7 đúng ko ạ? cứ như vậy m phải tăng dần chứ ạ??
a đả thông hộ e chỗ này với @@ e nghĩ mãi ko hiểu :(
Application.Goto Workbooks("Tonghop.xlsm").Sheets("KetQua").Range(" B7")
Range(Selection, Selection.End(xlDown)).Select
m = Selection.Count
do B7 trống nên Range(Selection, Selection.End(xlDown)).Select chỉ chọn 2 ô B7:B8 do đó m = Selection.Count luôn =2
bạn nên chỉnh lại
Mã:
.....
        Application.Goto Workbooks(bc).Sheets("TH").Range("B1")
        Range(Selection, Selection.End(xlDown)).Select
        n = Selection.Count
        
        m = Workbooks("Tonghop.xlsm").Sheets("KetQua").Range("B65000").End(xlUp).Row + 1
        Workbooks(bc).Worksheets("TH").Range(Cells(2, 2), Cells(n, 13)).Copy Destination:=Workbooks("Tonghop.xlsm").Worksheets("KetQua").Cells(m, 2)
        .....
 
Upvote 0
Application.Goto Workbooks("Tonghop.xlsm").Sheets("KetQua").Range(" B7")
Range(Selection, Selection.End(xlDown)).Select
m = Selection.Count
do B7 trống nên Range(Selection, Selection.End(xlDown)).Select chỉ chọn 2 ô B7:B8 do đó m = Selection.Count luôn =2
bạn nên chỉnh lại
Mã:
.....
        Application.Goto Workbooks(bc).Sheets("TH").Range("B1")
        Range(Selection, Selection.End(xlDown)).Select
        n = Selection.Count
        
        m = Workbooks("Tonghop.xlsm").Sheets("KetQua").Range("B65000").End(xlUp).Row + 1
        Workbooks(bc).Worksheets("TH").Range(Cells(2, 2), Cells(n, 13)).Copy Destination:=Workbooks("Tonghop.xlsm").Worksheets("KetQua").Cells(m, 2)
        .....

Cảm ơn bạn rất nhiều, nhờ bạn mình đã làm được rồi. :) tks.
 
Upvote 0
Web KT

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

Back
Top Bottom