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.
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ũ
Oh, nếu đúng thế thì chúng ta làm thế này: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
VT =OFFSET(TONGHOP!$A$7,COUNTA(TONGHOP!$A$7:$A$2000),0,1,1)
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
Chuyện này có ở đây í thôi, Anh Tuấn đối chiếu xem nha: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
Mạn phép bác, em xin trình bày vấn đề mở rộng hơn 1 chút xíu :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:
Name này có 1 cái lợi giúp ta khỏi tốn công định vị dòng cuốiMã:VT =OFFSET(TONGHOP!$A$7,COUNTA(TONGHOP!$A$7:$A$2000),0,1,1)
3> Tạo code:
Trong này ngay chổ Range(....) có thể sữa lại cho phù hợp với thực tế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
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
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
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