2024/01/31

EXCEL:利用VBA巨集刪除有錯誤值的列 刪除特定欄有空值的列 刪除值為0的列

EXCEL在利用VLOOKUP函數以及引用資料的時候,偶爾會發生找不到資料的情況,

會顯示為#N/A

或是找出來的該列資料有錯誤其實是不需要的,如果要手動排序找出這些值刪掉列當然可以

不過其實有更快的方法,就是直接在VBA裡面執行一段程式碼

例如我要找出A欄所有有錯誤的列並刪除

你可以這麼寫

Sub 刪除A欄有錯誤的列()

Range("A:A").SpecialCells(xlCellTypeFormulas, xlErrors).EntireRow.Delete

End Sub

也就是尋找A欄中的特殊儲存格,其值為錯誤的,將該列(entire row)刪除

這樣就可以輕鬆刪掉所有不需要錯誤列了

也可以把中間這行程式碼 放在編寫好的巨集末端,使用上會更方便。

 

另外,如果是貼上資料想要刪除有空值的列

也可以把xlCellTypeFormulas, xlErrors換成xlcelltypeblanks

 

也就是下面這個巨集

Sub 刪除A欄值為空白的列() 

Range("A:A").SpecialCells(xlcelltypeblanks).EntireRow.Delete

End Sub

 

如果是想要刪除某欄為0的列

Sub刪除值為0的列()

Dim R As Range, Rng As Range

For Each R In ActiveSheet.Range("A:A").SpecialCells(xlCellTypeConstants).Rows


      If Not IsError(Application.Match(0, R, 0)) Then

         If Rng Is Nothing Then Set Rng = R Else Set Rng = Union(R, Rng)

     End If

Next

If Not Rng Is Nothing Then Rng.EntireRow.Delete

End Sub

沒有留言:

張貼留言