[VBA code] xoá dòng trống

  • Thread starter Thread starter 20cent
  • Ngày gửi Ngày gửi
Liên hệ QC

20cent

Thành viên mới
Tham gia
20/7/10
Bài viết
36
Được thích
1
Mình nhập liệu từ “Phieu_nhap_lieu” sheet bao gồm: 13 cột và 15 dòng. Mình bị vướng mỗi lần nhập liệu thì ở “data” sheet có những dòng trống.
Ví dụ: lần nhập liệu thứ nhất mình chỉ nhập 10 dòng và lần nhập liệu thứ 2 mình chỉ nhập 8 dòng và lần nhập liệu thứ 3 mình nhập 12 dòng. Giữa lần 1 và 2 bị trống 5 dòng và giữa lần nhập thứ 2 và 3 bị trống 7 dòng...

Rất mong các bạn cho code để hoàn thiện!
 
Mình nhập liệu từ “Phieu_nhap_lieu” sheet bao gồm: 13 cột và 15 dòng. Mình bị vướng mỗi lần nhập liệu thì ở “data” sheet có những dòng trống.
Ví dụ: lần nhập liệu thứ nhất mình chỉ nhập 10 dòng và lần nhập liệu thứ 2 mình chỉ nhập 8 dòng và lần nhập liệu thứ 3 mình nhập 12 dòng. Giữa lần 1 và 2 bị trống 5 dòng và giữa lần nhập thứ 2 và 3 bị trống 7 dòng...

Rất mong các bạn cho code để hoàn thiện!
Bạn nên sử dụng thuộc tính End để xác định dòng tiếp theo sẽ nhập dữ liệu. Chẳng hạn nếu lúc trước đã nhập dữ liệu hoặc bảng dữ liệu đã có tiêu đề (ít nhất là cột A) thì [A65000].End(xlUp).Offset(1) sẽ là ô trống đầu tiên sau vùng dữ liệu đã nhập. Sử dụng thuộc tính này thì dữ liệu giữa các lần nhập sẽ không bị trống dòng.
 
Upvote 0
Bạn nên sử dụng thuộc tính End để xác định dòng tiếp theo sẽ nhập dữ liệu. Chẳng hạn nếu lúc trước đã nhập dữ liệu hoặc bảng dữ liệu đã có tiêu đề (ít nhất là cột A) thì [A65000].End(xlUp).Offset(1) sẽ là ô trống đầu tiên sau vùng dữ liệu đã nhập. Sử dụng thuộc tính này thì dữ liệu giữa các lần nhập sẽ không bị trống dòng.
Cảm ơn bạn nhưng mình không rành lắm chỉ tìm và copy & paste thôi… không hiểu rõ lắm hết nội dung của code :) đang đặt mua sách để dọc mà chưa có… mình có thấy 1 code không biết đúng không?

Sub locbodongtrong()
Dim sArr(), dArr(), I As Long, K As Long, R As Long, Col As Long
sArr = Sheets("data").Range("C3:O9999").Value ' DU LIEU DAU VAO
R = UBound(sArr)
ReDim dArr(1 To R, 1 To 13) ' 13 COT
For I = 1 To R
If sArr(I, 3) <> "" Then ' cot Mat hang Khac trong
K = K + 1
For Col = 1 To 13 ' 13 COT
dArr(K, Col) = sArr(I, Col)
Next Col
End If
Next I
' OUTPUT
On Error Resume Next
Sheets("data").Range("C3:O9999").ClearContents
Sheets("data").Range("C3").Resize(K, 13) = dArr ' 13 COT
End Sub
 
Upvote 0
Cảm ơn bạn nhưng mình không rành lắm chỉ tìm và copy & paste thôi… không hiểu rõ lắm hết nội dung của code :) đang đặt mua sách để dọc mà chưa có… mình có thấy 1 code không biết đúng không?

Sub locbodongtrong()
Dim sArr(), dArr(), I As Long, K As Long, R As Long, Col As Long
sArr = Sheets("data").Range("C3:O9999").Value ' DU LIEU DAU VAO
R = UBound(sArr)
ReDim dArr(1 To R, 1 To 13) ' 13 COT
For I = 1 To R
If sArr(I, 3) <> "" Then ' cot Mat hang Khac trong
K = K + 1
For Col = 1 To 13 ' 13 COT
dArr(K, Col) = sArr(I, Col)
Next Col
End If
Next I
' OUTPUT
On Error Resume Next
Sheets("data").Range("C3:O9999").ClearContents
Sheets("data").Range("C3").Resize(K, 13) = dArr ' 13 COT
End Sub
Nếu có quy định cột nào bắt buộc phải nhập dữ liệu (không có dữ liệu cột đó thì xem như là dòng trống) thì bạn có thể sử dụng Autofilter để lọc ra dòng trống rồi xóa kết quả lọc đi, cuối cùng bỏ lọc là xong. Nếu dùng code thì cũng như vậy, bạn có thể Record macro để tham khảo code.
 
Upvote 0
Web KT

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

Back
Top Bottom