Tự động cập nhật dữ liệu từ nhiều Sheet con vào 1 Sheet tổng (1 người xem)

  • Thread starter Thread starter vuzlong
  • Ngày gửi Ngày gửi
Liên hệ QC

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

vuzlong

Thành viên mới
Tham gia
16/2/11
Bài viết
4
Được thích
0
Nghề nghiệp
Quản lý
Chào mọi người,
Mình có 1 file excel dữ liệu như đính kèm.
File gồm 5 sheet con chia theo khu vực "hanoi" - "haiphong" - "danang" - "hochiminh" - "cantho" và 1 sheet tổng hợp(report).
Tất cả các sheet này đều có cùng cấu trúc bảng giống nhau.
Mọi người giúp mình chỗ này nhé:
Làm sao để mỗi khi mình cập nhật dữ liệu vào 1 trong số 5 sheet con thì nó sẽ tự động cập nhật vào sheet "Report", và dữ liệu trong file Report sẽ tăng dần theo thứ tự.
Mọi người có thể xem file đính kèm để hiểu rõ hơn.
 

File đính kèm

Chào mọi người,
Mình có 1 file excel dữ liệu như đính kèm.
File gồm 5 sheet con chia theo khu vực "hanoi" - "haiphong" - "danang" - "hochiminh" - "cantho" và 1 sheet tổng hợp(report).
Tất cả các sheet này đều có cùng cấu trúc bảng giống nhau.
Mọi người giúp mình chỗ này nhé:
Làm sao để mỗi khi mình cập nhật dữ liệu vào 1 trong số 5 sheet con thì nó sẽ tự động cập nhật vào sheet "Report", và dữ liệu trong file Report sẽ tăng dần theo thứ tự.
Mọi người có thể xem file đính kèm để hiểu rõ hơn.
Bạn Xài thử code nha
PHP:
Sub TongHop()
Dim Ws As Worksheet
For Each Ws In Worksheets
   If Ws.CodeName <> "Sheet6" Then
      Ws.Range("B10", Ws.[B65536].End(3)).Resize(, 7).Copy Sheet6.[B65536].End(3)(2)
   End If
Next
Range("B10", [B65536].End(3)).Offset(, -1) = [ROW(A:A)]
End Sub
Code2
PHP:
Sub TongHop2()
Dim Arr(), Res(1 To 65536, 1 To 7)
Dim Sh As Worksheet, i As Long, j As Long, k As Long
For Each Sh In Worksheets
   If Sh.CodeName <> "Sheet6" Then
        Arr = Sh.Range("B10", Sh.[B65536].End(3)).Resize(, 7).Value
        For i = 1 To UBound(Arr, 1)
            k = k + 1
            For j = 1 To UBound(Arr, 2)                
                 Res(k, j) = Arr(i, j)                
           Next
        Next
   End If
Next
Range("B65536").End(3)(2).Resize(k, 7) = Res
Range("B10", [B65536].End(3)).Offset(, -1) = [ROW(A:A)]
End Sub
 
Lần chỉnh sửa cuối:
ủa vậy rồi biết lựa cái nào mà xài đây anh ?
 
Ws.Range("B10", Ws.[B65536].End(3)).Resize(, 7).Copy Sheet6.[B65536].End(3)(2)

Lúc mới tiếp cận VBA thật sự tôi rối tung với .[B65536].End(3)(2),.[B65536].End(3), ...
khi thì range("A1"), khi thì cells(1,1), khi thì offset(1,1), khi thì offset(,1)......
khi thì end(3), khi thì end(4) khi thì end(3)(3)..... và lâu rất lâu tôi mới ngộ ra đó là những từ viết tắt và từ khi tôi ngộ ra chúng thì tôi mới biết à VBA nó đơn giảng hơn nhiều so với những ngôn ngữ cơ bản khác, vì hầu như tôi chả cần nhớ tên các thuộc tính các phương thức làm chi cho mệt nếu biết viết đúng cách.
tại sao lại viết tắt? đúng là viết tắt ngắn gọn, nhưng bù lại chúng ta phải nhớ một khối lượng rất lớn các phương thức vì VBA không hổ trợ chọn sẳn (cái này bắt buộc phải gõ đúng)
còn viết đúng cách bạn sẽ không cần nhớ chính tả các thuộc tính hay phương thức của nó nhưng vẫn có thể dễ dàng viết đúng 100%
 
Lần chỉnh sửa cuối:
Viết chơi vậy cho họ thích cái nào thì xài cái đó...thôi mà
nếu thích ADO thì có bạn rùi.... ADO là Mình tịt.....có chăng copy mấy cái code của GPE chế lại một tẹo là chạy Vèo vèo
 
Lần chỉnh sửa cuối:
Ws.Range("B10", Ws.[B65536].End(3)).Resize(, 7).Copy Sheet6.[B65536].End(3)(2)

Lúc mới tiếp cận VBA thật sự tôi rối tung với .[B65536].End(3)(2),.[B65536].End(3), ...
khi thì range("A1"), khi thì cells(1,1), khi thì offset(1,1), khi thì offset(,1)......
khi thì end(3), khi thì end(4) khi thì end(3)(3)..... và lâu rất lâu tôi mới ngộ ra đó là những từ viết tắt và từ khi tôi ngộ ra chúng thì tôi mới biết à VBA nó đơn giảng hơn nhiều so với những ngôn ngữ cơ bản khác, vì hầu như tôi chả cần nhớ tên các thuộc tính các phương thức làm chi cho mệt nếu biết viết đúng cách.
tại sao lại viết tắt? đúng là viết tắt ngắn gọn, nhưng bù lại chúng ta phải nhớ một khối lượng rất lớn các phương thức vì VBA không hổ trợ chọn sẳn (cái này bắt buộc phải gõ đúng)
còn viết đúng cách bạn sẽ không cần nhớ chính tả các thuộc tính hay phương thức của nó nhưng vẫn có thể dễ dàng viết đúng 100%
Cũng tùy sở thích và các viết của mỗi người miễn sao mình nhớ và viết chạy tốt là ok

mình nhớ ngày xưa gần nhà mình có bà hàng xóm tính cứ một thúng lúa bà lấy một hột đậu xanh cho vào cái lọ ... cứ như vậy 10 hột là mười thúng nếu bán thúng nào bỏ ra một hột.... vậy họ tính cũng được thôi....tóm lại tùy theo cách nhớ và viết của mỗi người..........
 
Code này nếu một sheet mà trống dữ liệu ở B10 thì không đúng nữa bạn ạ. Bạn có cách giải quyết không
 
Code này nếu một sheet mà trống dữ liệu ở B10 thì không đúng nữa bạn ạ. Bạn có cách giải quyết không
cách thì có đầy cách ra đó .... nhưng code đâu có thông minh tuyệt đỉnh hiểu được nay kiểu dữ này mai kiểu khác ....viết cho mai mốt đổi kiểu lại hỏi nữa.........có lẻ cách hay nhất là tự xử thì mai mốt mình chứng thì mình xử vậy thôi .......--=0@#!^%
 
cách thì có đầy cách ra đó .... nhưng code đâu có thông minh tuyệt đỉnh hiểu được nay kiểu dữ này mai kiểu khác ....viết cho mai mốt đổi kiểu lại hỏi nữa.........có lẻ cách hay nhất là tự xử thì mai mốt mình chứng thì mình xử vậy thôi .......--=0@#!^%
Bác cứ vui tính. Ý em là bác biết cách thì giải quyết dùm--=0 cho anh em hưởng lợi!
 
Web KT

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

Back
Top Bottom