Giúp đỡ code copy dữ liệu excel

Liên hệ QC

hdiyl84

Thành viên mới
Tham gia
5/8/13
Bài viết
6
Được thích
0
Dear các ban! Mình có dữ liệu như 2 file excel gửi kèm, 2 file này chỉ có 1 sheet và dữ liệu trong sheet là giống nhau về số cột nhưng khác nhau về số dòng. Bây giờ mình muốn
  • Mở cả 2 file lên
  • Sau đó copy toàn bộ dữ liệu bắt đầu từ dòng 2(vì dòng 1 là tên rồi) đến dòng cuối cùng của file dulieu2, Sang dòng cuối cùng của file dulieu1 (Số cột và số dòng của 2 file là không cố định nhưng hoàn toàn giống nhau về số cột, không sợ lệch cột khi copy)
  • Các bạn giúp mình đoạn code để làm việc này với
Thanks and Brs!
 

File đính kèm

  • Dulieu1.xlsx
    8.5 KB · Đọc: 8
  • Dulieu2.xlsx
    9.1 KB · Đọc: 7
  • Dear các ban.docx
    43 KB · Đọc: 3
Dear các ban! Mình có dữ liệu như 2 file excel gửi kèm, 2 file này chỉ có 1 sheet và dữ liệu trong sheet là giống nhau về số cột nhưng khác nhau về số dòng. Bây giờ mình muốn
  • Mở cả 2 file lên
  • Sau đó copy toàn bộ dữ liệu bắt đầu từ dòng 2(vì dòng 1 là tên rồi) đến dòng cuối cùng của file dulieu2, Sang dòng cuối cùng của file dulieu1 (Số cột và số dòng của 2 file là không cố định nhưng hoàn toàn giống nhau về số cột, không sợ lệch cột khi copy)
  • Các bạn giúp mình đoạn code để làm việc này với
Thanks and Brs!
Cuối cùng cũng đã xong cho bạn nhé! Tớ mới học nên viết miễn là ra yêu cầu thui.
 

File đính kèm

  • dulieu1.xlsm
    16.7 KB · Đọc: 15
  • Dulieu2.xlsm
    9.1 KB · Đọc: 8
Upvote 0
Cuối cùng cũng đã xong cho bạn nhé! Tớ mới học nên viết miễn là ra yêu cầu thui.
Sub Chay_coppy()
Dim ran As Range, n As Long, m As Long, i As Long, k As Long
For Each ran In Workbooks("dulieu1").Worksheets("ucell4").Range("A:A")
If ran.Value <> "" Then
n = n + 1
Else
Exit For
End If
Next
For Each ran In Workbooks("dulieu2").Worksheets("ucell6").Range("A:A")
If ran.Value <> "" Then
m = m + 1
Else
Exit For
End If
Next
k = 1
For i = 1 To m
n = n + 1
k = k + 1
Workbooks("dulieu1").Worksheets("ucell4").Range("A" & n).Value = Workbooks("dulieu2").Worksheets("ucell6").Range("A" & k).Value
Workbooks("dulieu1").Worksheets("ucell4").Range("B" & n).Value = Workbooks("dulieu2").Worksheets("ucell6").Range("B" & k).Value
Workbooks("dulieu1").Worksheets("ucell4").Range("C" & n).Value = Workbooks("dulieu2").Worksheets("ucell6").Range("C" & k).Value
Next
End Sub
Nếu mới bắt đầu thì nên Record Macro rồi chỉnh sửa lại một chút cho gọn là mau nhất.
PHP:
Sub MyCopy()
    Windows("Dulieu2.xlsm").Activate
        Sheets("UCell6").Select
            Range("A2:A" & [A65000].End(xlUp).Row).Resize(, [A1].End(xlToRight).Column).Copy
    Windows("dulieu1-1.xlsm").Activate
        Sheets("UCell4").Select
            Range("A65000").End(xlUp).Select
                ActiveSheet.Paste
    Application.CutCopyMode = False
End Sub
 
Upvote 0
Nếu làm như record macro thì sẽ bị copy đè lên dòng cuối, có cách nào để nó trỏ xuống dòng trắng bên dưới rồi mới copy ko ạ
 
Upvote 0
Nếu làm như record macro thì sẽ bị copy đè lên dòng cuối, có cách nào để nó trỏ xuống dòng trắng bên dưới rồi mới copy ko ạ

Chàng Ba Tw gài bạn đó!
Trong này:
PHP:
Sub MyCopy()
    Windows("Dulieu2.xlsm").Activate
        Sheets("UCell6").Select
            Range("A2:A" & [A65000].End(xlUp).Row).Resize(, [A1].End(xlToRight).Column).Copy
    Windows("dulieu1-1.xlsm").Activate
        Sheets("UCell4").Select
9            Range("A65000").End(xlUp).Select
                ActiveSheet.Paste
    Application.CutCopyMode = False
End Sub

Dòng lệnh mang số 9 cần viết thêm như sau

Mã:
[B]Range("A65000").End(xlUp)[COLOR="#FF0000"].Offset(1)[/COLOR].Select[/B]
 
Upvote 0
Thank bạn :D
Cho mình hỏi thêm nữa.
Bây gio mình trỏ xuống dòng cuối cùng chỉ dùng
(xlUp) Range("A65000").End(xlUp) .Select
Sau đó mình muốn copy 13 dòng cuối và toàn bộ cột của no xltoright.colum ấy thì cân làm tn ạ
 
Upvote 0
Web KT
Back
Top Bottom