Copy data qua sheet mới với vùng range thay đổi

Liên hệ QC

nguoi_co_doc

Thành viên mới
Tham gia
29/12/10
Bài viết
10
Được thích
3
Chào cả nhà,

Mình muốn viết một VBA cho file excel với một sheet "original" ban đầu và copy qua một sheet tên là "Select"
Vùng thay đổi theo giá trị của hàng, giá trị này mình làm như input, mỗi lần nhập vào các giá trị khác nhau.
Ví dụ như trong file đính kèm là mình muốn:
1. copy data B3 to C5 sheet "original" qua B4 to C6 sheet "Select"
2. copy data B6 to C10 sheet "original" qua D4 to E9 sheet "Select"
....
Các giá trị 3, 5, 6, 10...trong vùng màu vàng thay đổi (input) tùy theo data.
Data ở sheet "original" luôn start ở B3, C3 và kết thúc bất kỳ
Data ở sheet "Select" luôn có format start như file và kết thúc bất kỳ

Mong cả nhà giúp đỡ ạ
 

File đính kèm

  • VBA.xlsx
    9.1 KB · Đọc: 6
Chào cả nhà,

Mình muốn viết một VBA cho file excel với một sheet "original" ban đầu và copy qua một sheet tên là "Select"
Vùng thay đổi theo giá trị của hàng, giá trị này mình làm như input, mỗi lần nhập vào các giá trị khác nhau.
Ví dụ như trong file đính kèm là mình muốn:
1. copy data B3 to C5 sheet "original" qua B4 to C6 sheet "Select"
2. copy data B6 to C10 sheet "original" qua D4 to E9 sheet "Select"
....
Các giá trị 3, 5, 6, 10...trong vùng màu vàng thay đổi (input) tùy theo data.
Data ở sheet "original" luôn start ở B3, C3 và kết thúc bất kỳ
Data ở sheet "Select" luôn có format start như file và kết thúc bất kỳ

Mong cả nhà giúp đỡ ạ
Copy và Paste không theo một quy tắc nào cả, hay ai cũng hiểu chỉ một mình không rõ nhỉ?
Bạn giải thích rõ hơn các con số 3, 5, 6, 10, ... thử xem có liên hệ gì với chiều cao vùng được Copy hay không.
 
Upvote 0
Cám ơn @leonguyenz đã reply

giá tri ở ô màu vàng 3, 5, 6 10 là tùy vào data để mình nhập vào bạn ạ.
Lần này là 3, 5, 6, 10... nhưng mình có thể là 6, 25,40...tùy trường hợp.
 
Upvote 0
Cám ơn @leonguyenz đã reply

giá tri ở ô màu vàng 3, 5, 6 10 là tùy vào data để mình nhập vào bạn ạ.
Lần này là 3, 5, 6, 10... nhưng mình có thể là 6, 25,40...tùy trường hợp.
Thử code sau:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C3:W3")) Is Nothing Then
    If Target.Count = 1 And Target.Column Mod 2 = 1 Then
        If IsNumeric(Target) And IsNumeric(Target.Offset(0, -1)) Then
            If Target >= Target.Offset(0, -1) And Target.Offset(0, -1) > 0 Then
                Target.Offset(1, -1).Resize(5000, 2).ClearContents
                Sheet2.Range("B" & Target.Offset(0, -1) & ":C" & Target).Copy Target.Offset(1, -1)
            End If
        End If
    End If
End If
End Sub
 

File đính kèm

  • VBA.xlsm
    21.9 KB · Đọc: 5
Upvote 0
Cảm ơn bạn nhưng mà mình mới học VBA nên chưa biết gọi hàm private sub.
Cách gọi như thế nào bạn @leonguyenz nhỉ
 
Lần chỉnh sửa cuối:
Upvote 0
Upvote 0
Web KT

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

Back
Top Bottom