Các Bác giúp em vấn đề này với ạ.
Em muốn tổng hợp số liệu từ sheet1 và sheet2 vào 1 sheet tổng hợp.các bác xem file đính kèm rồi giúp em với.em đang cần gấp để báo cáo danh sách tổng cho sếp.
Cảm ơn cả nhà nhiều nhé.
Các Bác giúp em vấn đề này với ạ.
Em muốn tổng hợp số liệu từ sheet1 và sheet2 vào 1 sheet tổng hợp.các bác xem file đính kèm rồi giúp em với.em đang cần gấp để báo cáo danh sách tổng cho sếp.
Cảm ơn cả nhà nhiều nhé.
Các Bác giúp em vấn đề này với ạ.
Em muốn tổng hợp số liệu từ sheet1 và sheet2 vào 1 sheet tổng hợp.các bác xem file đính kèm rồi giúp em với.em đang cần gấp để báo cáo danh sách tổng cho sếp.
Cảm ơn cả nhà nhiều nhé.
Chỉ cần cở 3 sheet thôi là công thức đủ "lết bánh" rồi... 12 sheet e rằng phải dùng đến VBA... nếu bạn đồng ý thì chúng ta sẽ tiếp tục với giãi pháp VBA
Ví dụ cho bạn tham khảo đây!
Giã sử tôi có 1 file gồm 7 sheet... Từ sheet 1 đến sheet 6 là phần nhập liệu... Sheet Tonghop là nơi ta gôm tất cả dử liệu ở các sheet về
Yêu cầu và tính năng của file này:
- Tên các sheet là gì cũng đựoc, duy nhất Tonghop không được đổi tên (nếu thay đổi bạn phải sửa lại code)
- Bạn có thể thêm bao nhiêu sheet vào file này tùy ý, đặt sheet nằm đâu cũng đựoc
- Bạn phải bảo đãm cấu trúc dử liệu ở các sheet là giống nhau hoàn toàn (nếu có khác thì phải sửa lại code)
- Bạn không cần làm bất cứ thao tác gì, cứ việc nhập liệu, khi chuyển sang sheet Tonghop là mọi thứ sẽ đựoc cập nhật chính xác (thử nghiệm bằng cách nhập gì đó thêm vào các sheet rồi sang Tonghop kiểm chứng)
Vân vân và vân vân...
Thử xem có gì trục trặc không?
Cách làm ở file này gần giống với yêu cầu tại đây: http://www.giaiphapexcel.com/forum/showthread.php?t=13136
nhưng file của bạn có phần dể hơn 1 chút (hãy tham khảo thêm)
Bạn à, tôi có 1 vấn đề này phiền mọi người giúp đỡ: Xây dựng 1 macro cho phép copy tất cả sheet trong các file excel trong 1 thư mục vào 1 file tổng hợp. Ví dụ: Thư mục VDu có 5 file excel; trong mỗi file excel này có 5 sheet-> 5 file sẽ có 25 sheet. Vậy công việc của macro này là copy 25 sheet do vao trong file tong hop(các sheet trong file nầy có tên là các số thứ tự 1,2,3,..,500 hoặc hơn.Mong các bạn giúp mình.
Thanks
Option Explicit
Private Sub Worksheet_Activate()
Dim Sh As Worksheet
Dim Src As Range
Dim Sc As Long, Sd As Long, Er As Long
Application.ScreenUpdating = False
Range("A2:C10000").ClearContents
For Each Sh In Worksheets
If Sh.Name <> "Tonghop" Then
With Sh.[A1].SpecialCells(2, 1)
Sc = Sh.[A1].CurrentRegion.Columns.Count - 1
Er = [B65536].End(xlUp).Row + 1
Set Src = Union(.Offset(, 0), .Offset(, 1)).Offset(, 1).Resize(, Sc)
Cells(Er, 2).Resize(.Rows.Count, Sc).Value = Src.Value
End With
End If
Next Sh
With [A1].SpecialCells(4)
Sd = .Rows.Count
.FormulaArray = "=Row(1:" & Sd & ")"
.Value = .Value
End With
Application.ScreenUpdating = True
End Sub
Option Explicit
Private Sub Worksheet_Activate()
Dim Sh As Worksheet
Dim Src As Range
Dim Sc As Long, Sd As Long, Er As Long
Application.ScreenUpdating = False
Range("A2:C10000").ClearContents
For Each Sh In Worksheets
If Sh.Name <> "Tonghop" Then
With Sh.[A1].SpecialCells(2, 1)
Sc = Sh.[A1].CurrentRegion.Columns.Count - 1
Er = [B65536].End(xlUp).Row + 1
Set Src = Union(.Offset(, 0), .Offset(, 1)).Offset(, 1).Resize(, Sc)
Cells(Er, 2).Resize(.Rows.Count, Sc).Value = Src.Value
End With
End If
Next Sh
With [A1].SpecialCells(4)
Sd = .Rows.Count
.FormulaArray = "=Row(1:" & Sd & ")"
.Value = .Value
End With
Application.ScreenUpdating = True
End Sub
Bác có thương thì cho trót, bác vui lòng giải thích giúp em ý nghĩa của từng dòng VBA đó đc không ah, khai báo thì em hiểu, specialcell(2,1), currentRegion, Union...... có nghĩa là sai hở bác
Xin chân thành cám ơn bác
Bác có thương thì cho trót, bác vui lòng giải thích giúp em ý nghĩa của từng dòng VBA đó đc không ah, khai báo thì em hiểu, specialcell(2,1), currentRegion, Union...... có nghĩa là sai hở bác
Xin chân thành cám ơn bác
- Range("gì đó").SpecialCells(2,1) <==> Bạn quét chọn Range("gì đó") rồi bấm Ctrl + G\Special... chọn mục Contents và check vào "Number" (bỏ các dấu check "Text", "Logic" và "Error" ) ---> Trong hộp Goto này, nếu đếm từ trên xuống thì Contents nằm vị trí thứ 2
- Range("gì đó").CurrentRegion <==> Bạn quét chọn Range("gì đó") rồi bấm Ctrl + Shift + *
- Union(Range(1),Range(2)...) <==> GầntTương đương với việc bạn chọn vùng 1, bấm giữ Ctrl rồi chọn vùng 2, giữ Ctrl, lại chọn tiếp vùng khác ---> Kết hợp các vùng không liên tục lại với nhau để thao tác 1 lần
Toàn bộ đều có thể Record macro để xem (trừ Union ra)
--------------------
Nhân tiện rút gọn code này thêm bước nữa (chỉ xài 1 biến duy nhất)
PHP:
Private Sub Worksheet_Activate()
Dim Sh As Worksheet
Application.ScreenUpdating = False
Range("A2:C10000").ClearContents
For Each Sh In Worksheets
If Sh.Name <> "Tonghop" Then
With Sh.Range("A1").CurrentRegion.Offset(1, 1).SpecialCells(2)
Range("B65536").End(xlUp)(2).Resize(.Rows.Count, .Columns.Count).Value = .Value
End With
End If
Next Sh
Range("A1").SpecialCells(4).Value = Evaluate("=Row(R1:R1000)")
Application.ScreenUpdating = True
End Sub
- Range("gì đó").SpecialCells(2,1) <==> Bạn quét chọn Range("gì đó") rồi bấm Ctrl + G\Special... chọn mục Contents và check vào "Number" (bỏ các dấu check "Text", "Logic" và "Error" ) ---> Trong hộp Goto này, nếu đếm từ trên xuống thì Contents nằm vị trí thứ 2
- Range("gì đó").CurrentRegion <==> Bạn quét chọn Range("gì đó") rồi bấm Ctrl + Shift + *
- Union(Range(1),Range(2)...) <==> GầntTương đương với việc bạn chọn vùng 1, bấm giữ Ctrl rồi chọn vùng 2, giữ Ctrl, lại chọn tiếp vùng khác ---> Kết hợp các vùng không liên tục lại với nhau để thao tác 1 lần
Toàn bộ đều có thể Record macro để xem (trừ Union ra)
--------------------
Nhân tiện rút gọn code này thêm bước nữa (chỉ xài 1 biến duy nhất)
PHP:
Private Sub Worksheet_Activate()
Dim Sh As Worksheet
Application.ScreenUpdating = False
Range("A2:C10000").ClearContents
For Each Sh In Worksheets
If Sh.Name <> "Tonghop" Then
With Sh.Range("A1").CurrentRegion.Offset(1, 1).SpecialCells(2)
Range("B65536").End(xlUp)(2).Resize(.Rows.Count, .Columns.Count).Value = .Value
End With
End If
Next Sh
Range("A1").SpecialCells(4).Value = Evaluate("=Row(R1:R1000)")
Application.ScreenUpdating = True
End Sub
Ẹc... Ẹc... Bạn hỏi nhiêu tôi trả lời bấy nhiêu rồi đấy thôi... Khúc trên ấy!
Còn gì nữa nào?
(tôi kém vụ giãi thích này lắm ---> E rằng bạn mua sách hoặc down tài liệu của sư phụ Sa về đọc còn sướng hơn)
Bạn à, tôi có 1 vấn đề này phiền mọi người giúp đỡ: Xây dựng 1 macro cho phép copy tất cả sheet trong các file excel trong 1 thư mục vào 1 file tổng hợp. Ví dụ: Thư mục VDu có 5 file excel; trong mỗi file excel này có 5 sheet-> 5 file sẽ có 25 sheet. Vậy công việc của macro này là copy 25 sheet do vao trong file tong hop(các sheet trong file nầy có tên là các số thứ tự 1,2,3,..,500 hoặc hơn.Mong các bạn giúp mình.
Thanks
thấy bạn hỏi trên điễn đàn đã lâu nhưng không thấy ai trả lời. Nay tôi cũng rất cần làm công việc như bạn không biết bạn đã làm được chưa giúp tôi với.
không biết vấn đề này quá khó hay sao mà không có một ai trong diễn đàn này giúp.
- Range("gì đó").SpecialCells(2,1) <==> Bạn quét chọn Range("gì đó") rồi bấm Ctrl + G\Special... chọn mục Contents và check vào "Number" (bỏ các dấu check "Text", "Logic" và "Error" ) ---> Trong hộp Goto này, nếu đếm từ trên xuống thì Contents nằm vị trí thứ 2
- Range("gì đó").CurrentRegion <==> Bạn quét chọn Range("gì đó") rồi bấm Ctrl + Shift + *
- Union(Range(1),Range(2)...) <==> GầntTương đương với việc bạn chọn vùng 1, bấm giữ Ctrl rồi chọn vùng 2, giữ Ctrl, lại chọn tiếp vùng khác ---> Kết hợp các vùng không liên tục lại với nhau để thao tác 1 lần
Toàn bộ đều có thể Record macro để xem (trừ Union ra)
--------------------
Nhân tiện rút gọn code này thêm bước nữa (chỉ xài 1 biến duy nhất)
PHP:
Private Sub Worksheet_Activate()
Dim Sh As Worksheet
Application.ScreenUpdating = False
Range("A2:C10000").ClearContents
For Each Sh In Worksheets
If Sh.Name <> "Tonghop" Then
With Sh.Range("A1").CurrentRegion.Offset(1, 1).SpecialCells(2)
Range("B65536").End(xlUp)(2).Resize(.Rows.Count, .Columns.Count).Value = .Value
End With
End If
Next Sh
Range("A1").SpecialCells(4).Value = Evaluate("=Row(R1:R1000)")
Application.ScreenUpdating = True
End Sub
minh k biết ji về visua nen ban giúp mình với.. như file ni thì minh gộp làm sao.. với lại muốn gộp tăng thêm nữa thì chỉnh sửa chổ nào.. đây chỉ là file thu gọn thôi