我有一些財務資料,其中一些行是空白的,如果選定范圍內的整行都是空白,id 希望能夠洗掉整行(這對于它在選定范圍內很重要,因為我可能在 A 列中有“收入”但然后我有列 BD 是空白資料(基本上沒有數字))。
我希望它適用于選定的范圍,而不是在代碼中具有預定范圍(為了代碼靈活)。
我正在嘗試使用這種格式,但它似乎不起作用:
Sub deleteBlankRows()
Dim c As Range
On Error Resume Next
For Each c In Selection.Row.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Next
End Sub
任何想法都會受到歡迎。
uj5u.com熱心網友回復:
回圈遍歷每個完整的行選擇并檢查空白單元格的計數是否與行中所有單元格的計數匹配:

我的代碼:
Dim rng As Range
For Each rng In Selection.Rows
If Application.WorksheetFunction.CountBlank(rng) = rng.Cells.Count Then rng.EntireRow.Delete
Next rng
執行代碼后:

空行消失了
更新:
@VasilyIvoyzha 是絕對正確的。For each在這種情況下將無法正常作業。更好的方法是:
Dim i&, x&, lastRow&
lastRow = Range(Split(Selection.Address, ":")(1)).Row
x = Selection.Rows.Count
For i = lastRow To Selection.Cells(1).Row Step -1
If WorksheetFunction.Concat(Selection.Rows(x)) = "" Then Rows(i).Delete
x = x - 1
Next i
這種方式將洗掉選擇時的空行,即使它們是連續的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/390966.html
上一篇:選擇獲勝最多的人
下一篇:受保護作業表上的表單控制元件
