Giúp em viết macro xóa dòng thiếu dữ liệu (2 người xem)

  • Thread starter Thread starter lightd
  • Ngày gửi Ngày gửi

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

lightd

Thành viên chính thức
Tham gia
12/10/11
Bài viết
63
Được thích
12
Xin chào các anh chị
Em đang học VBA viết ứng dụng cho excel, em đang thắc mắc chương trình sau
Em muốn viết 1 tool nhỏ : Em có 1 data gồm các cột và các dòng điều có dữ liệu, nếu trong datad đó ( vùng chọn ) cell nào không có dữ liệu thì phải đi dòng chứa cell đó và tự động dòng row up .
Tool mình hoạt động: Lần đầu người chọn vùng data cần kiểm tra và xóa dòng dữ liệu thiếu . sau đó sẽ xóa đi dòng đó và row up
Cảm ơn các anh chị
Ak em muốn hỏi thêm nếu chuyển qua addin có thêm menu thì mình là sao ạ để tiện sử dụng sau này
huongdancotcanxoa.png
 
Lần chỉnh sửa cuối:
Xin chào các anh chị
Em đang học VBA viết ứng dụng cho excel, em đang thắc mắc chương trình sau
Em muốn viết 1 tool nhỏ : Em có 1 data gồm các cột và các dòng điều có dữ liệu, nếu trong datad đó ( vùng chọn ) cell nào không có dữ liệu thì phải đi dòng chứa cell đó và tự động dòng row up .
Tool mình hoạt động: Lần đầu người chọn vùng data cần kiểm tra và xóa dòng dữ liệu thiếu . sau đó sẽ xóa đi dòng đó và row up
Cảm ơn các anh chị
Ak em muốn hỏi thêm nếu chuyển qua addin có thêm menu thì mình là sao ạ để tiện sử dụng sau này
huongdancotcanxoa.png
Copy hết đống này cho vào 1 Module. Có này sẽ tạo ra 1 shortcut trên cell khi bấm chuột phải
Có thể save thành 1 addin để xài
PHP:
Private Sub Auto_Open()
  On Error Resume Next
  With Application.CommandBars("Cell").Controls.Add(1, , , 1)
    .Caption = "Delete Empty Cells"
    .OnAction = "DeleteEmptyCells"
  End With
End Sub
Private Sub Auto_Close()
  On Error Resume Next
  Application.CommandBars("Cell").Reset
End Sub
Sub DeleteEmptyCells()
Application.ScreenUpdating = False
Dim i&, j&, FirstRow&, LastRow&, FirstCol&, LastCol&
FirstRow = Selection.Row
LastRow = FirstRow + Selection.Rows.Count - 1
FirstCol = Selection.Column
LastCol = FirstCol + Selection.Columns.Count - 1
For i = LastRow To FirstRow Step -1
   For j = FirstCol To LastCol
      If Cells(i, j) = Empty Then
         Cells(i, j).EntireRow.Delete
      End If
   Next
Next
Application.ScreenUpdating = True
End Sub
 
Upvote 0
learn2.jpg
Dã sử em chỉ xóa những dòng không có dữ liệu còn những dòng có dữ liệu thì vẫn dữ nguyên thì sao ạ
 
Lần chỉnh sửa cuối:
Upvote 0
View attachment 131917
Dã sử em chỉ xóa những dòng không có dữ liệu còn những dòng có dữ liệu thì vẫn dữ nguyên thì sao ạ
PHP:
Sub DeleteEmptyCells()
Application.ScreenUpdating = False
Dim i&, j&, FirstRow&, LastRow&, FirstCol&, LastCol&
FirstRow = Selection.Row
LastRow = FirstRow + Selection.Rows.Count - 1
FirstCol = Selection.Column
LastCol = FirstCol + Selection.Columns.Count - 1
For i = LastRow To FirstRow Step -1
   If Application.CountA(Cells(i, FirstCol), Cells(i, LastCol)) = 0 Then
      Cells(i, FirstCol).EntireRow.Delete
   End If
Next
Application.ScreenUpdating = True
End Sub
 
Upvote 0

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

Back
Top Bottom