tổng hợp dữ liệu từ nhiều sheet vào một sheet (3 người xem)

Liên hệ QC

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

Ý này bạn đã mô tả rồi;
Không hiểu là ở chỗ, ví dụ mã A001-B1, sao lại sang bên trang 'TH' lại có dòng dữ liệu 3; nhất là các ô từ [e3:j3]
Các ô dữ liệu từ E:N là các ô được nhập vào với thông số lấy từ bên sheet "rev".
Còn các ô từ C:D đã có công thức để đưa ra tình trạng mới nhất hiện tại.


& mã A002-G3 ở trang này bổng dưng xuất hiện số liệu là từ đâu?
Mã nào cũng có giá trị Rev-Date mà bạn, hiện tại mình đang nhập thủ công thôi. Dữ liệu được cung cấp với định dạng như bên sheet "rev"
 
Lần chỉnh sửa cuối:
Hiện tại mình đã mầy mò và viết được như này, nhưng mới chỉ đưuọc chức năng copy, nếu có mã mới, chưa tự động thêm vào được.
Sub TongHop()Dim arr As Variant, D_arr As Variant
Dim i As Integer, j As Integer, r As Long, c As Long
Set arr = Sheet1.Range("A3:C25")
Set D_arr = Sheet2.Range("B3:N25")

MSG = "Please confirm the latest data already input here !!!"
Style = vbYesNo + vbInformation
Title = "Notice For" & Ad & " " & Yy & "Update data! "
Note = MsgBox(MSG, Style, Title)
If Note = vbYes Then
For i = 1 To arr.Rows.Count
For j = 1 To D_arr.Rows.Count
If arr(i, 1) = D_arr(j, 1) Then
For c = 4 To D_arr.Columns.Count
If D_arr(j, c) = "" Then
D_arr(j, c) = arr(i, 2)
D_arr(j, c + 1) = arr(i, 3)
Exit For
End If
Next c
End If
Next j
Next i
Else: Exit Sub
End If
End Sub

Mình đang muốn ch.trình tự xác định cận dưới của mảng, nhưng khi thay 2 dòng đỏ thành như bên dưới thì báo lỗi, mong các bạn chỉ giáo giúp.
Set arr = Sheet1.Range([A3], [C10000].End(xlUp))
Set D_arr = Sheet2.Range([B3], [N10000].End(xlUp))
 
Mình đang muốn ch.trình tự xác định cận dưới của mảng, nhưng khi thay 2 dòng đỏ thành như bên dưới thì báo lỗi, mong các bạn chỉ giáo giúp.
Bạn thử sửa thế này thử xem.
Mã:
Set arr = Sheet1.Range([A3], [COLOR=#ff0000][B]Sheet1.[/B][/COLOR][C10000].End(xlUp))
Set D_arr = Sheet2.Range([B3], [COLOR=#ff0000][B]Sheet2.[/B][/COLOR][N10000].End(xlUp))
 
Bạn thử sửa thế này thử xem.
Mã:
Set arr = Sheet1.Range([A3], [COLOR=#ff0000][B]Sheet1.[/B][/COLOR][C10000].End(xlUp))
Set D_arr = Sheet2.Range([B3], [COLOR=#ff0000][B]Sheet2.[/B][/COLOR][N10000].End(xlUp))
không được bạn ơi, vẫn báo lỗi : "Method 'Range' of object '_Worsheet' failed"
 
Mã:
Dim arr As range, D_arr As range
Dim i As Integer, j As Integer, r As Long, c As Long
Set arr = Sheet1.Range("A3:C25")
Set D_arr = Sheet2.Range("B3:N25")

hoặc

Mã:
Dim arr, D_arr
Dim i As Integer, j As Integer, r As Long, c As Long
arr = Sheet1.Range("A3:C25")
D_arr = Sheet2.Range("B3:N25")
 
Lần chỉnh sửa cuối:
Mã:
Dim arr As range, D_arr As range
Dim i As Integer, j As Integer, r As Long, c As Long
Set arr = Sheet1.Range("A3:[COLOR=#ff0000]C25[/COLOR]")
Set D_arr = Sheet2.Range("B3:[COLOR=#ff0000]N25[/COLOR]")

hoặc

Mã:
Dim arr, D_arr
Dim i As Integer, j As Integer, r As Long, c As Long
arr = Sheet1.Range("A3:[COLOR=#ff0000]C25[/COLOR]")
D_arr = Sheet2.Range("B3:[COLOR=#ff0000]N25[/COLOR]")

mình đang muốn các bạn giúp làm sao để ch.trình tự xác định được cận dưới của bảng.
Trong đoạn code mình đang test, thì cận dưới là các ô C25 và N25. Mình đang thử với dạng như dưới này nhưng bị báo lỗi.
PHP:
Set arr = Sheet1.Range([A3], [C10000].End(xlUp))
Set D_arr = Sheet2.Range([B3], [N10000].End(xlUp))
 
Lần chỉnh sửa cuối:
mình đang muốn các bạn giúp làm sao để ch.trình tự xác định được cận dưới của bảng.
Trong đoạn code mình đang test, thì cận dưới là các ô C25 và N25. Mình đang thử với dạng như dưới này nhưng bị báo lỗi.
PHP:
Set arr = Sheet1.Range([A3], [C10000].End(xlUp))
Set D_arr = Sheet2.Range([B3], [N10000].End(xlUp))
mình thường khai báo thế nầy
Mã:
arr = Sheets("tên sheet").Range("A3:C" &Sheets("tên sheet").Range("C10000").End(xlUp).row)
nếu có Dim arr as range thì thêm set phía trước
 
mình thường khai báo thế nầy
Mã:
arr = Sheets("tên sheet").Range("A3:C" &Sheets("tên sheet").Range("C10000").End(xlUp).row)
nếu có Dim arr as range thì thêm set phía trước

File mình gửi dưới đây được làm theo 2 cách, nút Update là cố định vùng dữ liệu A3:C25, nút Update_02 được sửa lại theo gợi ý của bạn.
Bạn xem giúp mình sao chỉ có dòng đầu tiên được update khi dùng theo nút Update_02.
 

File đính kèm

File mình gửi dưới đây được làm theo 2 cách, nút Update là cố định vùng dữ liệu A3:C25, nút Update_02 được sửa lại theo gợi ý của bạn.
Bạn xem giúp mình sao chỉ có dòng đầu tiên được update khi dùng theo nút Update_02.
bạn chỉnh lại code
Mã:
...
Set arr = Sheet1.Range("A3:C" & Sheet1.Range("C10000").End(xlUp).Row)
Set D_arr = Sheet2.Range("B3:R" & Sheet2.Range[COLOR=#ff0000]("B10000"[/COLOR]).End(xlUp).Row)
...
bạn phải chọn cột có đủ dữ liệu, trong file là cột B
sheet rev bạn phải chọn những dòng dưới không có dữ liệu và bấm phím Delete, để code tính đúng dòng cuối, nếu không xóa sẽ tính dư, tuy không ảnh hưởng đến kết quả trong trường hợp nầy, nhưng có thể sai trong trường hợp khác, ngoài ra còn làm code chạy chậm
bạnphải
 
bạn chỉnh lại code
Mã:
...
Set arr = Sheet1.Range("A3:C" & Sheet1.Range("C10000").End(xlUp).Row)
Set D_arr = Sheet2.Range("B3:R" & Sheet2.Range[COLOR=#ff0000]("B10000"[/COLOR]).End(xlUp).Row)
...
bạn phải chọn cột có đủ dữ liệu, trong file là cột B
sheet rev bạn phải chọn những dòng dưới không có dữ liệu và bấm phím Delete, để code tính đúng dòng cuối, nếu không xóa sẽ tính dư, tuy không ảnh hưởng đến kết quả trong trường hợp nầy, nhưng có thể sai trong trường hợp khác, ngoài ra còn làm code chạy chậm
bạnphải
Thanks bạn, code đã chạy ngon lành rồi %#^#$%#^#$
 
sau 1 thời gian mày mò, mình đã tạo được file như bên dưới, đã có chức năng tự động thêm dòng khi có mã mới.
tuy code chạy tạm ổn, nhưng với trường hợp có nhiều mã mới hoặc nhiều mã cần update, chương trình chạy khá chậm.
mình mới đang tập viết code, chưa biết làm sao cải thiện được tốc độ. nhờ các bạn xem qua và chỉ bảo giúp.
 

File đính kèm

Web KT

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

Back
Top Bottom