Tìm code VBA copy có điều kiện

Liên hệ QC

minhhieu0091

Thành viên mới
Tham gia
15/10/21
Bài viết
4
Được thích
2
Hi mọi người !
Nhờ mọi người viết giúp mình đoạn mã VBA copy để từ bảng 1 thành bảng 2 như trong file mình đính kèm, là copy dữ liệu vào ô trống theo dòng đến khi gặp dữ liệu mới thì dừng lại và bắt đầu copy dữ liệu mới. Cảm ơn mọi người rất nhiều !
 

File đính kèm

  • MẪU.xlsx
    10.4 KB · Đọc: 4
Hi mọi người !
Nhờ mọi người viết giúp mình đoạn mã VBA copy để từ bảng 1 thành bảng 2 như trong file mình đính kèm, là copy dữ liệu vào ô trống theo dòng đến khi gặp dữ liệu mới thì dừng lại và bắt đầu copy dữ liệu mới. Cảm ơn mọi người rất nhiều !
Cai này bạn có thể thao tác bằng tay cũng nhanh mà
Bạn thử thao tác theo như những ảnh trong file coi
Giả sử bạn muốn viết code.
Dòng cuối cùng con chó ấy. chẳng lẽ nó sẽ điền đến tận dòng 1 triệu là con chó hả
Bài đã được tự động gộp:

Thử với code này coi thế nào
Mã:
Sub ABC()
Dim arr(), i&
With Sheet1
    arr = .Range("A2:B20").Value
    For i = 1 To UBound(arr, 1)
        If arr(i, 1) = "" Then arr(i, 1) = arr(i - 1, 1) + 1
        If arr(i, 2) = "" Then arr(i, 2) = arr(i - 1, 2)
    Next
    .Range("G2").Resize(UBound(arr, 1), 2).Value = arr
End With
End Sub
 

File đính kèm

  • aaaaa.zip
    1.2 MB · Đọc: 6
Lần chỉnh sửa cuối:
Upvote 0
Cai này bạn có thể thao tác bằng tay cũng nhanh mà
Bạn thử thao tác theo như những ảnh trong file coi
Giả sử bạn muốn viết code.
Dòng cuối cùng con chó ấy. chẳng lẽ nó sẽ điền đến tận dòng 1 triệu là con chó hả
Bài đã được tự động gộp:

Thử với code này coi thế nào
Mã:
Sub ABC()
Dim arr(), i&
With Sheet1
    arr = .Range("A2:B20").Value
    For i = 1 To UBound(arr, 1)
        If arr(i, 1) = "" Then arr(i, 1) = arr(i - 1, 1) + 1
        If arr(i, 2) = "" Then arr(i, 2) = arr(i - 1, 2)
    Next
    .Range("G2").Resize(UBound(arr, 1), 2).Value = arr
End With
End Sub

Cai này bạn có thể thao tác bằng tay cũng nhanh mà
Bạn thử thao tác theo như những ảnh trong file coi
Giả sử bạn muốn viết code.
Dòng cuối cùng con chó ấy. chẳng lẽ nó sẽ điền đến tận dòng 1 triệu là con chó hả
Bài đã được tự động gộp:

Thử với code này coi thế nào
Mã:
Sub ABC()
Dim arr(), i&
With Sheet1
    arr = .Range("A2:B20").Value
    For i = 1 To UBound(arr, 1)
        If arr(i, 1) = "" Then arr(i, 1) = arr(i - 1, 1) + 1
        If arr(i, 2) = "" Then arr(i, 2) = arr(i - 1, 2)
    Next
    .Range("G2").Resize(UBound(arr, 1), 2).Value = arr
End With
End Sub
Cám ơn bạn nhiều nha ! Trường hợp thêm nhiều cột tương tự thì mình phải chỉnh sửa như thế nào vậy bạn ?
 
Upvote 0
đây này bạn, nhiều cột hơn thì mình phải thêm thế nào
Thử code này
Mã:
Option Explicit
Sub ABC()
    Dim arr(), i&, j&
    With Sheet1
        arr = .Range("A1:I23").Value
        For i = 1 To UBound(arr, 1)
            If arr(i, 1) = "" Then arr(i, 1) = arr(i - 1, 1) + 1
            For j = 2 To UBound(arr, 2)
                If arr(i, j) = "" Then arr(i, j) = arr(i - 1, j)
            Next
        Next
        .Range("L1").Resize(UBound(arr, 1), UBound(arr, 2)).Value = arr
    End With
End Sub
 
Upvote 0
Thử code này
Mã:
Option Explicit
Sub ABC()
    Dim arr(), i&, j&
    With Sheet1
        arr = .Range("A1:I23").Value
        For i = 1 To UBound(arr, 1)
            If arr(i, 1) = "" Then arr(i, 1) = arr(i - 1, 1) + 1
            For j = 2 To UBound(arr, 2)
                If arr(i, j) = "" Then arr(i, j) = arr(i - 1, j)
            Next
        Next
        .Range("L1").Resize(UBound(arr, 1), UBound(arr, 2)).Value = arr
    End With
End Sub
Mình làm được rồi, cảm ơn bạn nhiều nhen ! :)
 
Upvote 0
Web KT
Back
Top Bottom