Dữ liệu ở nhiều Sheet, mang về 1 Sheet

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

TKT

Thành viên tiêu biểu
Tham gia
2/1/08
Bài viết
673
Được thích
1,336
Nghề nghiệp
.....
Xin hỏi các anh chị, dữ liệu ở nhiều sheet, mang về một sheet tự động được không. Cấu trúc , tên tiêu đề giống nhau. anh chị nào có link về đề tài này cho mình với. Xin cám ơn.
 
0906732617 đã viết:
Xin hỏi các anh chị, dữ liệu ở nhiều sheet, mang về một sheet tự động được không. Cấu trúc , tên tiêu đề giống nhau. anh chị nào có link về đề tài này cho mình với. Xin cám ơn.

+ thì bạn dùng công thức bình thường thôi

+ còn nếu bạn muốn copy giống hệt về cấu trúc thì chỉ cấn
R.click lên tên sheet đó \ rồi chọn copy -> tạo 1 sheet mới giống hoàn toàn sheet cũ
 
Theo tôi nghĩ thì hình như bạn ấy muốn thế này:
1> File có 10 sheet giống nhau hoàn toàn về cấu trúc
2> Bạn ấy muốn copy từng sheet rồi paste vào sheet thứ 11 với điều kiện dữ liệu cũa cái này nối đuôi cái kia
Ví dụ: Sheet 1 có 100 dòng, copy sang sheet 11 vẩn 100 dòng.... Đến khi copy sheet 2 thì phải paste vào dòng thứ 101 cũa sheet 11... và cứ thế tiếp tục cho đến sheet cuối....
Nếu làm bằng tay thì cũng ko phải là khó khăn gì lắm... nhưng dù sao bấm nút 1 nhát nó làm hết mọi chuyện vẫn sướng hơn mà... Và tôi nhớ vụ này đã có ví dụ trên diển đàn rồi nhưng giờ ko biết nó nằm ở đâu
Mến
ANH TUẤN
 
anhtuan1066 đã viết:
Theo tôi nghĩ thì hình như bạn ấy muốn thế này:
1> File có 10 sheet giống nhau hoàn toàn về cấu trúc
2> Bạn ấy muốn copy từng sheet rồi paste vào sheet thứ 11 với điều kiện dữ liệu cũa cái này nối đuôi cái kia
Ví dụ: Sheet 1 có 100 dòng, copy sang sheet 11 vẩn 100 dòng.... Đến khi copy sheet 2 thì phải paste vào dòng thứ 101 cũa sheet 11... và cứ thế tiếp tục cho đến sheet cuối....
Nếu làm bằng tay thì cũng ko phải là khó khăn gì lắm... nhưng dù sao bấm nút 1 nhát nó làm hết mọi chuyện vẫn sướng hơn mà... Và tôi nhớ vụ này đã có ví dụ trên diển đàn rồi nhưng giờ ko biết nó nằm ở đâu
Mến
ANH TUẤN
Oh, nếu đúng thế thì chúng ta làm thế này:
+ thứ nhất ghi 1 macro : copy từ sheet1 đến sheet đích
+ sau đó vào sử code của macro này, thay shee1 thành sheet(i) và sử dụng vòng lặp là được
+ atuan giúp bạn đó theo hướng vậy nhé
+ Nhưng ko có DL thử -> đề nghị bạn post DL lên cho mọi người
 
Lần chỉnh sửa cuối:
Nếu thế thì tôi xin "múa" 1 tí
1> Đầu tiên là add thêm 1 sheet, đặt tên nó là TONGHOP chẳng hạn...
2> Tại cell đầu tiên (ko tính tiêu đề) cũa sheet này mà dử liệu sẽ dc copy vào (giã sữ là A7), bạn đặt cho nó 1 name:
Mã:
VT =OFFSET(TONGHOP!$A$7,COUNTA(TONGHOP!$A$7:$A$2000),0,1,1)
Name này có 1 cái lợi giúp ta khỏi tốn công định vị dòng cuối
3> Tạo code:
PHP:
Sub Copy_MultiSheet()
   Dim sh As Worksheet
   Dim Rng As Range
   Application.ScreenUpdating = False
   Set TONGHOP = Sheets("TONGHOP")
   Range("A7:E1000").ClearContents
   For Each sh In ThisWorkbook.Worksheets
      Set Rng = sh.Range("A7:E1000")
      If sh.Name <> TONGHOP.Name Then
         sh.Select
         Rng.Copy
         Application.Goto Reference:="VT"
         Selection.PasteSpecial xlPasteValues
         Application.CutCopyMode = False
      End If
   Next
   Range("A6").Select
End Sub
Trong này ngay chổ Range(....) có thể sữa lại cho phù hợp với thực tế
Trên đây chỉ là gợi ý, còn nhiều vấn đề cần bổ sung thêm... Các cao thủ góp ý dùm với vì tôi chỉ là... gà mờ... hi.. hi...
ANH TUẤN
 

File đính kèm

Lần chỉnh sửa cuối:
Nếu thế thì tôi xin "múa" 1 tí
. . . .
Trên đây chỉ là gợi ý, còn nhiều vấn đề cần bổ sung thêm... Các cao thủ góp ý dùm với vì tôi chỉ là... gà mờ... hi.. hi...
ANH TUẤN
Chuyện này có ở đây í thôi, Anh Tuấn đối chiếu xem nha:
http://www.giaiphapexcel.com/forum/showthread.php?t=5553
 
anhtuan1066 đã viết:
Nếu thế thì tôi xin "múa" 1 tí
1> Đầu tiên là add thêm 1 sheet, đặt tên nó là TONGHOP chẳng hạn...
2> Tại cell đầu tiên (ko tính tiêu đề) cũa sheet này mà dử liệu sẽ dc copy vào (giã sữ là A7), bạn đặt cho nó 1 name:
Mã:
VT =OFFSET(TONGHOP!$A$7,COUNTA(TONGHOP!$A$7:$A$2000),0,1,1)
Name này có 1 cái lợi giúp ta khỏi tốn công định vị dòng cuối
3> Tạo code:
PHP:
Sub Copy_MultiSheet()
   Dim sh As Worksheet
   Dim Rng As Range
   Application.ScreenUpdating = False
   Set TONGHOP = Sheets("TONGHOP")
   Range("A7:E1000").ClearContents
   For Each sh In ThisWorkbook.Worksheets
      Set Rng = sh.Range("A7:E1000")
      If sh.Name <> TONGHOP.Name Then
         sh.Select
         Rng.Copy
         Application.Goto Reference:="VT"
         Selection.PasteSpecial xlPasteValues
         Application.CutCopyMode = False
      End If
   Next
   Range("A6").Select
End Sub
Trong này ngay chổ Range(....) có thể sữa lại cho phù hợp với thực tế
Trên đây chỉ là gợi ý, còn nhiều vấn đề cần bổ sung thêm... Các cao thủ góp ý dùm với vì tôi chỉ là... gà mờ... hi.. hi...
ANH TUẤN
Mạn phép bác, em xin trình bày vấn đề mở rộng hơn 1 chút xíu :

- Ta chỉ copy từ một số sheet thôi chứ không phải là toàn bộ
- Dữ liệu ở các sheet là có cùng số cột, tuy nhiên lại không đồng nhất về hàng đầu tiên cũng như hàng cuối cùng. Cũng như thế, mảng dwx liệu ở các sheet khác nhau không cùng nằm trên các cột như nhau.

Vậy thì giải pháp là :
- Ta tạo ra 1 Sub có tham số, khi ta muốn copy từ sheet nào đến sheet nào thì chỉ cần 1 dòng lệnh gọi nó ra là có ngay

PHP:
Sub Update(ShGoc As String, CDGoc As String, CCGoc As String, _
           ShDich As String, CDDich As String, CCDich As String)
    Dim HDGoc As Long, HCGoc As Long, HDDich As Long, HCDich As Long
    If Worksheets(ShGoc).Range(CDGoc & "1") = "" Then
        HDGoc = Worksheets(ShGoc).Range(CDGoc & "1").End(xlDown).Row + 1
    Else
        HDGoc = 2
    End If
    HCGoc = Worksheets(ShGoc).Range(CDGoc & "65000").End(xlUp).Row
    
    HDDich = Worksheets(ShDich).Range(CDDich & "65000").End(xlUp).Row + 1
    HCDich = HDDich + (HCGoc - HDGoc)
        
    Worksheets(ShDich).Range(CDDich & HDDich & ":" & CCDich & HCDich).Value = _
    Worksheets(ShGoc).Range(CDGoc & HDGoc & ":" & CCGoc & HCGoc).Value
End Sub
Dòng lệnh để gọi nó ra :


PHP:
Sub CopySh()
    S00.Range("A2:B10000").ClearContents
''': Copy từ cột A đến cột B ở Sheet S01 đến cột A:B ở Sheet S00
    Update S01.Name, "A", "B", S00.Name, "A", "B"
    Update S02.Name, "D", "E", S00.Name, "A", "B"
    Update S03.Name, "A", "B", S00.Name, "A", "B"
    Update S04.Name, "C", "D", S00.Name, "A", "B"
    Update S05.Name, "A", "B", S00.Name, "A", "B"
    Update S06.Name, "F", "G", S00.Name, "A", "B"

End Sub
Sự tùy biến từ Sub có tham số là rất nhiều.

Các bác tham khảo.

Thân!
 

File đính kèm

Tôi là Tuanlichviet cảm ơn Anh Tuấn bài viết này
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom