我有這段代碼刪除行,如果它有列D到L空單元格。
由於某種原因,它也刪除我的標題單元格位於C8。
任何人都知道爲什麼?以及如何解決它?VBA代碼刪除不正確的行
Sub RemoveEmptyRows()
Dim ws As Worksheet
For Each ws In Sheets
ws.Activate
Dim n As Long
Dim nlast As Long
Dim rw As Range
Set rw = ActiveWorkbook.ActiveSheet.UsedRange.Rows
nlast = rw.count
For n = nlast To 1 Step -1
If (rw.Cells(n, 4).Value = "" And rw.Cells(n, 5).Value = "" And rw.Cells(n, 6).Value = "" And rw.Cells(n, 7).Value = "" And rw.Cells(n, 8).Value = "" And rw.Cells(n, 9).Value = "" And rw.Cells(n, 10).Value = "" And rw.Cells(n, 11).Value = "") Then
rw.Rows(n).Delete
End If
Next n
Next ws
End Sub
如果頂部有空白行,'UsedRange'的行索引不一定匹配工作表的行索引。 – Comintern
那麼,代碼有點混亂。例如。在循環內定義變量會讓我噁心。但實際上它刪除了第4列(D)到第11列(K)中沒有任何內容的每一整行。因此,如果您的D8:K8中的單元格爲空,則第8行將被刪除。嘗試使用F8逐步完成代碼。 – vacip
或嘗試在單元格「D8」中放入某些內容(即某些空白字符)。或者,在代碼中檢查('If n <> 8') –