Cách copy dữ liệu, bỏ qua dòng không có nội dung, nối tiếp bảng dữ liệu hiện có

Liên hệ QC

pingping2288

Thành viên chính thức
Tham gia
1/11/11
Bài viết
86
Được thích
1
Em có file như vầy, Sheet"2" đã sẵn có dữ liệu, giả sử có 4 dòng dữ liệu, Sheet"1" chứa dữ liệu nhưng bao gồm cả các dòng trống xen kẽ với các dòng chứa dữ liệu. Em xin hỏi làm thế nào để đưa dữ liệu từ Sheet"1" sang Sheet"2" để các dữ liệu nối tiếp nhau và tự động bỏ qua các dòng trống ạ!
 

File đính kèm

Em có file như vầy, Sheet"2" đã sẵn có dữ liệu, giả sử có 4 dòng dữ liệu, Sheet"1" chứa dữ liệu nhưng bao gồm cả các dòng trống xen kẽ với các dòng chứa dữ liệu. Em xin hỏi làm thế nào để đưa dữ liệu từ Sheet"1" sang Sheet"2" để các dữ liệu nối tiếp nhau và tự động bỏ qua các dòng trống ạ!
Thử với Sub này xem sao:
PHP:
Option Explicit


Public Sub s_Gpe()
Dim sArr(), dArr(), I As Long, K As Long, R As Long, Rws As Long, STT As Long
    R = Sheets("2").Range("A50000").End(xlUp).Row
    STT = Sheets("2").Range("A" & R).Value
sArr = Sheets("1").Range("C2", Sheets("1").Range("D50000").End(xlUp)).Value
Rws = UBound(sArr)
ReDim dArr(1 To Rws, 1 To 3)
    For I = 1 To Rws
        If sArr(I, 2) <> Empty Then
            K = K + 1
            STT = STT + 1
            dArr(K, 1) = STT
            dArr(K, 2) = sArr(I, 1)
            dArr(K, 3) = sArr(I, 2)
        End If
    Next I
Sheets("2").Range("A" & R + 1).Resize(K, 3) = dArr
            
End Sub
 
Upvote 0
Thử với Sub này xem sao:
PHP:
Option Explicit


Public Sub s_Gpe()
Dim sArr(), dArr(), I As Long, K As Long, R As Long, Rws As Long, STT As Long
    R = Sheets("2").Range("A50000").End(xlUp).Row
    STT = Sheets("2").Range("A" & R).Value
sArr = Sheets("1").Range("C2", Sheets("1").Range("D50000").End(xlUp)).Value
Rws = UBound(sArr)
ReDim dArr(1 To Rws, 1 To 3)
    For I = 1 To Rws
        If sArr(I, 2) <> Empty Then
            K = K + 1
            STT = STT + 1
            dArr(K, 1) = STT
            dArr(K, 2) = sArr(I, 1)
            dArr(K, 3) = sArr(I, 2)
        End If
    Next I
Sheets("2").Range("A" & R + 1).Resize(K, 3) = dArr
          
End Sub
Chuẩn luôn ạ, đúng là giúp thành viên với tốc độ ánh sáng, em cám ơn thầy nhiều!
 
Upvote 0
Thử với Sub này xem sao:
PHP:
Option Explicit


Public Sub s_Gpe()
Dim sArr(), dArr(), I As Long, K As Long, R As Long, Rws As Long, STT As Long
    R = Sheets("2").Range("A50000").End(xlUp).Row
    STT = Sheets("2").Range("A" & R).Value
sArr = Sheets("1").Range("C2", Sheets("1").Range("D50000").End(xlUp)).Value
Rws = UBound(sArr)
ReDim dArr(1 To Rws, 1 To 3)
    For I = 1 To Rws
        If sArr(I, 2) <> Empty Then
            K = K + 1
            STT = STT + 1
            dArr(K, 1) = STT
            dArr(K, 2) = sArr(I, 1)
            dArr(K, 3) = sArr(I, 2)
        End If
    Next I
Sheets("2").Range("A" & R + 1).Resize(K, 3) = dArr
           
End Sub
Em trót nháy 2 phát thì nó chơi y chang. nếu là n phát nháy thì chắc hết dòng để chứa sao ấy thầy ơi
 
Upvote 0
Thử với Sub này xem sao:
PHP:
Option Explicit


Public Sub s_Gpe()
Dim sArr(), dArr(), I As Long, K As Long, R As Long, Rws As Long, STT As Long
    R = Sheets("2").Range("A50000").End(xlUp).Row
    STT = Sheets("2").Range("A" & R).Value
sArr = Sheets("1").Range("C2", Sheets("1").Range("D50000").End(xlUp)).Value
Rws = UBound(sArr)
ReDim dArr(1 To Rws, 1 To 3)
    For I = 1 To Rws
        If sArr(I, 2) <> Empty Then
            K = K + 1
            STT = STT + 1
            dArr(K, 1) = STT
            dArr(K, 2) = sArr(I, 1)
            dArr(K, 3) = sArr(I, 2)
        End If
    Next I
Sheets("2").Range("A" & R + 1).Resize(K, 3) = dArr
           
End Sub
Thầy ơi cho em hỏi tý ạ, có cách nào để mình vô tình kích lệnh chạy nhiều lần nhưng phần dữ liệu thêm vào không nối tiếp vào không ạ? Em thấy cứ mỗi lần chạy là phần dữ liệu cần thêm lại chèn vào và chạy dài ra, giả sử kích 2 lần nó dài gấp đôi, 3 lần gấp 3...nội dung thì lại y như thế
Bài đã được tự động gộp:

Chỉ chuẩn khi không " bị buồn buồn" bấm nút cho chạy vài lần vui mắt.
Thầy ơi, làm sao để kích n lần nó chỉ chạy đúng phần dữ liệu cần thêm thôi ạ, chứ kiểu này nó cứ nối nối...
 
Upvote 0
Thầy ơi cho em hỏi tý ạ, có cách nào để mình vô tình kích lệnh chạy nhiều lần nhưng phần dữ liệu thêm vào không nối tiếp vào không ạ? Em thấy cứ mỗi lần chạy là phần dữ liệu cần thêm lại chèn vào và chạy dài ra, giả sử kích 2 lần nó dài gấp đôi, 3 lần gấp 3...nội dung thì lại y như thế
Bài đã được tự động gộp:


Thầy ơi, làm sao để kích n lần nó chỉ chạy đúng phần dữ liệu cần thêm thôi ạ, chứ kiểu này nó cứ nối nối...
Làm sao biết cần thêm dữ liệu nào?
Tạm thêm 1 cột phụ bên sheets "1", dòng nào lấy dữ liệu rồi thì "quánh x" vào dòng đó.
Hổng chịu thì tính sau.
 

File đính kèm

Upvote 0
Làm sao biết cần thêm dữ liệu nào?
Tạm thêm 1 cột phụ bên sheets "1", dòng nào lấy dữ liệu rồi thì "quánh x" vào dòng đó.
Hổng chịu thì tính sau.
Chịu liền ạ,nhưng mà lúc em xóa dữ liệu trong sheet"2" đi để chạy lại thì nó " tịt" luôn không chạy nữa thầy ạ! Muốn chạy lại phải thêm thao tác xóa chữ"x" trong sheet"1", nghe hơi lâu lâu thầy ạ:)
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom