Nhờ bổ sung thêm code tổng hợp dữ liệu từ nhiều sheet (Code của anh Ndu) (3 người xem)

Liên hệ QC

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

doanhhoang79

Thành viên hoạt động
Tham gia
31/3/08
Bài viết
142
Được thích
18
Chào cả nhà,

Tôi tìm hiểu trên diễn đàn thấy có bài viết tổng hợp dữ liệu từ nhiều sheet khác nhau của anh Ndu rất hay.
Giả sử có rất nhiều sheet. Vậy khi tôi chỉ muốn tổng hợp các sheets (Thang4, Thang5, Thang6) thì phải sửa code như thế nào?

Tôi gửi flie của anh Nud mong mọi người giúp đỡ.

PS: Em xin hỏi luôn: Nếu trùng tên thì nó sẽ tự động tính tổng cho tên đó thì phải làm sao?
VD: trong các sheet đều có tên Nguyễn Văn 01 khi đó nó sẽ tự động cộng tất cả số liệu của tên này lại.
 

File đính kèm

Lần chỉnh sửa cuối:
Chào cả nhà,

Tôi tìm hiểu trên diễn đàn thấy có bài viết tổng hợp dữ liệu từ nhiều sheet khác nhau của anh Ndu rất hay.
Giả sử có rất nhiều sheet. Vậy khi tôi chỉ muốn tổng hợp các sheets (Thang4, Thang5, Thang6) thì phải sửa code như thế nào?

Tôi gửi flie của anh Nud mong mọi người giúp đỡ.
Đoạn này:
PHP:
If Sh.Name <> "Tonghop" Then
Sửa thành:
PHP:
If Sh.Name = "Thang4" Or Sh.Name = "Thang5" Or Sh.Name = "Thang6" Then
Và đoạn này:
PHP:
Range("A1").SpecialCells(4).Value = Evaluate("=Row(R1:R1000)")
Sửa thành:
PHP:
Range("A1").CurrentRegion.SpecialCells(4).Value = Evaluate("=Row(R:R)")
 
Em xin hỏi luôn: Nếu trùng tên thì nó sẽ tự động tính tổng cho tên đó thì phải làm sao?
VD: trong các sheet đều có tên Nguyễn Văn 01 khi đó nó sẽ tự động cộng tất cả số liệu của tên này lại. (ở sheet Tonghop chỉ cần lưu một tên Nguyễn văn 01 thôi)

Anh ndu giúp em với.
 
Em xin hỏi luôn: Nếu trùng tên thì nó sẽ tự động tính tổng cho tên đó thì phải làm sao?
VD: trong các sheet đều có tên Nguyễn Văn 01 khi đó nó sẽ tự động cộng tất cả số liệu của tên này lại. (ở sheet Tonghop chỉ cần lưu một tên Nguyễn văn 01 thôi)

Anh ndu giúp em với.
Không có vụ tự động tính tổng đâu nha! Code này chỉ làm 1 việc "thu gom" thôi ---> Nếu muốn trích lọc duy nhất và tính tổng ta phải viết khác --> Đơn giản nhất là dùng Consolidate
Bạn thử trước xem
Ngoài ra, muốn nhận được câu trả lời chuẩn xác, bạn nên đưa dử liệu thật lên đây (mất công lại không biết tùy biến)
 
Không có vụ tự động tính tổng đâu nha! Code này chỉ làm 1 việc "thu gom" thôi ---> Nếu muốn trích lọc duy nhất và tính tổng ta phải viết khác --> Đơn giản nhất là dùng Consolidate
Bạn thử trước xem
Ngoài ra, muốn nhận được câu trả lời chuẩn xác, bạn nên đưa dử liệu thật lên đây (mất công lại không biết tùy biến)

Có thể dùng VBA để tự động tính tổng được không anh? File đính kèm là gần như file thật của em rồi đấy.
 
Trong khi chờ đợi bạn thí nghiệm, tôi đề xuất code thế này (còn gọn hơn cả vụ thu gom)
PHP:
Private Sub Worksheet_Activate()
  Dim Sh As Worksheet, SrcRng As String, Dic
  Set Dic = CreateObject("Scripting.Dictionary")
  Application.ScreenUpdating = False
  Range("A2:C10000").ClearContents
  For Each Sh In Worksheets
    If Sh.Name <> "Tonghop" Then
      Dic.Add Sh.Name, "'" & Sh.Name & "'!" & Sh.Range("A1").CurrentRegion.Offset(, 1).Address(, , 2)
    End If
  Next
  Range("B1").Consolidate Dic.Items, 9, 1, 1
  Range("A1").CurrentRegion.SpecialCells(4).Value = Evaluate("=Row(R:R)")
  Application.ScreenUpdating = True
End Sub
Lưu ý: Code này Trích lọc duy nhất và tính tổng cho toàn bộ các sheet (trừ sheet TONGHOP) --> Còn việc chỉ trích riêng sheet Thang4, Thang5 và Thang6 bạn tự nghiên cứu nhé (gần giống như ở bài trên)
 

File đính kèm

Web KT

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

Back
Top Bottom