Code delete shift up cell các ô có giá trị bằng 0 trong một sheet dữ liệu

Liên hệ QC

huongduongxanh2007

Thành viên mới
Tham gia
9/6/07
Bài viết
22
Được thích
7
Chào các ACE,

Em có một sheet data gần 100000 cells trong đó có nhiều cells có giá trị bằng 0. Và em muốn delete and shift up cells của những ô đó thì code như thế nào cho nhanh.

Cảm ơn các ACE nhiều.
 
Cái này còn tùy thuộc vào điều kiện, nghĩa là có bao nhiêu điều kiện để lấy được tất cả những giá trị 0 đó.

Theo mình thì dùng Advanced Filter là OK.
 
Upvote 0
Em co cái code sau đây chỉ delete shift up trong một column, nhưng với nhiều cells có giá trị bằng 0 liên tục thì nó run không chính xác lắm, anyway vẫn xài tạm.

Sub delete()
Dim i As Single
For i = 3 To 650
If Cells(i, 41).Value = 0 Then
Cells(i, 41).delete Shift:=xlUp
Else
Cells(i, 41).Activate
End If
Next i

Cells(2, 41).Activate
End Sub
 
Upvote 0
Em co cái code sau đây chỉ delete shift up trong một column, nhưng với nhiều cells có giá trị bằng 0 liên tục thì nó run không chính xác lắm, anyway vẫn xài tạm.

Sub delete()
Dim i As Single
For i = 3 To 650
If Cells(i, 41).Value = 0 Then
Cells(i, 41).delete Shift:=xlUp
Else
Cells(i, 41).Activate
End If
Next i

Cells(2, 41).Activate
End Sub
Nếu có 1 cột thì nên dùng AutoFilter là nhanh gọn nhất, nếu muốn dùng code thì Record lại macro rồi sử dụng cho lần sau.
 
Upvote 0
Em co cái code sau đây chỉ delete shift up trong một column, nhưng với nhiều cells có giá trị bằng 0 liên tục thì nó run không chính xác lắm, anyway vẫn xài tạm.

Sub delete()
Dim i As Single
For i = 3 To 650
If Cells(i, 41).Value = 0 Then
Cells(i, 41).delete Shift:=xlUp
Else
Cells(i, 41).Activate
End If
Next i

Cells(2, 41).Activate
End Sub
Làm vậy sao mà chính xác chứ ---> Muốn dùng vòng lập For trong trường hợp này, ít ra phải quét ngược từ dưới lên trên
Còn tôi thì dùng AutoFilter, chẳng cần vòng lập nào:
PHP:
Sub Test()
  Dim TmpRng As Range
  With Range([AO2], [AO65536].End(xlUp))
    .AutoFilter 1, 0
    Set TmpRng = Intersect(.Offset(1), .SpecialCells(12))
    .AutoFilter
    TmpRng.Delete 2
  End With
End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom