LẤY DỮ LIỆU MẢNG LIỀU NHAU (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

anhbanvuitinh9x

Thành viên mới
Tham gia
4/10/14
Bài viết
43
Được thích
14
Giới tính
Nam
anh/chị cho em hỏi em lấy dữ liệu ở mảng ra nhưng sẽ có những phần tử empty, nên khi lấy dữ liệu ra nó có những khoảng trắng.
Nên có cách nào để dữ liệu lấy ra liền nhau không?
Em cảm ơn!
 

File đính kèm

anh/chị cho em hỏi em lấy dữ liệu ở mảng ra nhưng sẽ có những phần tử empty, nên khi lấy dữ liệu ra nó có những khoảng trắng.
Nên có cách nào để dữ liệu lấy ra liền nhau không?
Em cảm ơn!
Sửa 1 chút của bạn.Chỉ sửa theo yêu cầu.
Mã:
Function lr(ws As Worksheet, col As Long)
    lr = ws.Cells(Rows.Count, col).End(xlUp).Row
End Function
Sub laydulieu()
Dim arr()
Dim i As Long, j As Long, a As Long
Dim kq()
Dim dongcuoi As Long
Sheet1.Select
dongcuoi = lr(Sheet1, 1)
arr = Range(Cells(2, 1), Cells(dongcuoi, 4)).Value
ReDim kq(1 To dongcuoi - 1, 1 To 4)
    For i = 1 To dongcuoi - 1
        If arr(i, 1) = Sheet2.Range("b1").Value Then
            a = a + 1
            For j = 1 To 4
                kq(a, j) = arr(i, j)
            Next j
        End If
    Next i
    Sheet2.Range("A3:D10000").ClearContents
    If a Then Sheet2.Range("A3:D3").Resize(a).Value = kq()
    Sheet2.Select
End Sub
 
Upvote 0
Sửa 1 chút của bạn.Chỉ sửa theo yêu cầu.
Mã:
Function lr(ws As Worksheet, col As Long)
    lr = ws.Cells(Rows.Count, col).End(xlUp).Row
End Function
Sub laydulieu()
Dim arr()
Dim i As Long, j As Long, a As Long
Dim kq()
Dim dongcuoi As Long
Sheet1.Select
dongcuoi = lr(Sheet1, 1)
arr = Range(Cells(2, 1), Cells(dongcuoi, 4)).Value
ReDim kq(1 To dongcuoi - 1, 1 To 4)
    For i = 1 To dongcuoi - 1
        If arr(i, 1) = Sheet2.Range("b1").Value Then
            a = a + 1
            For j = 1 To 4
                kq(a, j) = arr(i, j)
            Next j
        End If
    Next i
    Sheet2.Range("A3:D10000").ClearContents
    If a Then Sheet2.Range("A3:D3").Resize(a).Value = kq()
    Sheet2.Select
End Sub
Em cảm ơn bác rất nhiều, em ngồi nghĩ với mò mãi chẳng ra
 
Upvote 0
Dủng ADO, trong câu query để lấy dữ liệu thì thêm "Where cái gì đó NOT NULL"
 
Upvote 0
Dủng ADO, trong câu query để lấy dữ liệu thì thêm "Where cái gì đó NOT NULL"
Dủng ADO, trong câu query để lấy dữ liệu thì thêm "Where cái gì đó NOT NULL"
Bài đã được tự động gộp:

Dủng ADO, trong câu query để lấy dữ liệu thì thêm "Where cái gì đó NOT NULL"
Em mới nghiên cứu VBA nên bác có thể nói rõ hơn giúp e k?
 
Upvote 0
Nếu cần copy nhiều vùng cách nhau bởi khoảng trống thì có thể dùng advanced filter để copytorange
- xác định dòng cuối 1
- ghi criteria ra kế đó (dòng cuối 1 + 1)
- xác định dòng cuối 2
- select dữ liệu đến dòng cuối 1
- advanced filter, chọn copytorange kể từ dòng cuối 2 + 1
- copy dữ liệu kể từ dòng cuối 2 + 1 ra mảng
- clear hết dữ liệu
- copy mảng xuống dòng đầu
 
Upvote 0
Web KT

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

Back
Top Bottom