Hỗ trợ copy cụm dữ liệu (dòng cuối cùng)

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

Tình nghĩa giang hồ

Thanh sơn bất cải, lục thủy trường lưu
Tham gia
29/9/20
Bài viết
330
Được thích
429
Chào anh chị em có vấn đề này nhờ anh chị hỗ trợ giúp.
Dữ liệu của em là cột B như hình.
Cụm dữ liệu: được định nghĩa là dòng cuối cùng đếm lên cho tới dòng trống
Em có gửi 4 hình, thì cụm dữ liệu là cột B em tô đỏ trong hình.

Em có viết thử 1 đoạn code mà không biết lý do gì mà chưa đúng, nếu được thì sửa lại dùm em, còn thấy hướng đi của em đã sai thì có thể viết lại dùm em với.
Em cảm ơn anh chị.

Mã:
Sub Copy_cumdulieu()
    Dim findString As String
    Dim indexRow As Long
    Dim lastRow As Long
    Dim arr As Variant
    Dim i As Long
   
    findString = ""
   
 
    indexRow = 1
    lastRow = Sheet1.Cells(Rows.Count, "B").End(xlUp).Row
    arr = Sheet1.Range("B1:B" & lastRow).Value
    For i = UBound(arr, 1) To LBound(arr, 1) Step -1
        If arr(i, 1) = findString Then
            indexRow = i + 1
            Exit For
        End If
    Next i
   

    If indexRow <= lastRow Then
        Sheet1.Range("B" & indexRow & ":B" & lastRow).Copy
    Else
        MsgBox "KHONG TIM THAY "
        Exit Sub
    End If

 
    Application.CutCopyMode = False

End Sub
 

File đính kèm

  • Cụm dữ liệu.xlsb
    14.7 KB · Đọc: 7
  • DL1.PNG
    DL1.PNG
    123.9 KB · Đọc: 30
  • DL2.PNG
    DL2.PNG
    111.4 KB · Đọc: 29
  • DL3.PNG
    DL3.PNG
    118.8 KB · Đọc: 27
  • DL4.PNG
    DL4.PNG
    137 KB · Đọc: 32
Upvote 0
Copy rồi làm gì tiếp theo ?
Đoán mò. Bạn tự test lấy kết quả
Mã:
Sub ABC()
    Dim iR&, Rng As Range
    With Sheets("sheet1")
        iR = .Range("B" & Rows.Count).End(3).Row
        Set Rng = .Range(.Range("B" & iR), .Range("B" & iR).End(3))
        If Rng.Rows.Count < iR Then
            Rng.Copy
        End If
    End With
End Sub
 
Upvote 0
Bạn phải xác định rõ dòng trống là dòng như thế nào?
- Xét cùng 1 cột (cụ thể là cột B).
- Tìm ô cuối chứa dữ liệu
- Từ ô cuối đó tìm ngược lên tới ô không chứa dữ liệu, ô có công thức nhưng giá trị rỗng?
cụm dữ liệu là những dòng em tô đỏ đó anh: ở hình 1. là B17
ở hình 2: là Range("B14:B15")
ở hình 3: là Range("B12:B14")
ở hình 4: là Range("B8:B13")
Mục đích của bài này là xác định được cụm dữ liệu thôi anh.
Bài đã được tự động gộp:

Copy rồi làm gì tiếp theo ?
Đoán mò. Bạn tự test lấy kết quả
Mã:
Sub ABC()
    Dim iR&, Rng As Range
    With Sheets("sheet1")
        iR = .Range("B" & Rows.Count).End(3).Row
        Set Rng = .Range(.Range("B" & iR), .Range("B" & iR).End(3))
        If Rng.Rows.Count < iR Then
            Rng.Copy
        End If
    End With
End Sub
Chỉ cần xác định cụm dữ liệu thôi anh. Có thể Select, hoặc Copy. Và bài này là copy. Mục đích chính là xác định vị trí cụm dữ liệu thôi anh để em làm căn cứ áp dụng một số vấn đề của em thôi.
Bài đã được tự động gộp:

Copy rồi làm gì tiếp theo ?
Đoán mò. Bạn tự test lấy kết quả
Mã:
Sub ABC()
    Dim iR&, Rng As Range
    With Sheets("sheet1")
        iR = .Range("B" & Rows.Count).End(3).Row
        Set Rng = .Range(.Range("B" & iR), .Range("B" & iR).End(3))
        If Rng.Rows.Count < iR Then
            Rng.Copy
        End If
    End With
End Sub
Chèn ơi, code này đúng rồi nè anh. Mà sao em làm phức tạp, còn anh làm có mấy dòng là ra rồi.
Em cảm ơn anh.
 
Upvote 0
Chèn ơi, code này đúng rồi nè anh. Mà sao em làm phức tạp, còn anh làm có mấy dòng là ra rồi.
Em cảm ơn anh.
Xin lỗi. Phải là như này mới đúng kết quả này
Mã:
Sub ABC()
    Dim iR&, Rng As Range
    With Sheets("sheet1")
        iR = .Range("B" & Rows.Count).End(3).Row
        Set Rng = .Range(.Range("B" & iR), .Range("B" & iR).End(3))
        If Rng.Rows.Count < iR Then
            If .Range("B" & iR - 1) <> Empty Then
                Rng.Copy
            Else
                .Range("B" & iR).Copy
            End If
        End If
    End With
End Sub
 
Upvote 0
cụm dữ liệu là những dòng em tô đỏ đó anh: ở hình 1. là B17
ở hình 2: là Range("B14:B15")
ở hình 3: là Range("B12:B14")
ở hình 4: là Range("B8:B13")
Mục đích của bài này là xác định được cụm dữ liệu thôi anh.
Bài đã được tự động gộp:


Chỉ cần xác định cụm dữ liệu thôi anh. Có thể Select, hoặc Copy. Và bài này là copy. Mục đích chính là xác định vị trí cụm dữ liệu thôi anh để em làm căn cứ áp dụng một số vấn đề của em thôi.
Bài đã được tự động gộp:


Chèn ơi, code này đúng rồi nè anh. Mà sao em làm phức tạp, còn anh làm có mấy dòng là ra rồi.
Em cảm ơn anh.
Code bài #1 của bạn đúng rồi, ai biểu bạn tắt copy đi làm gì? Xóa dòng trước end sub
 
Upvote 0
Web KT

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

Back
Top Bottom