Excel VBA:如何删除所有表中的空行
第一篇文章在这里,我一直试图删除在Excel 2010中使用此代码的每个工作表中的空行:
Private Sub CommandButton1_Click() Dim I As Integer 'For all sheets... For I = 1 To Sheets.Count 'select corresponding sheet Sheets(I).Select Sheets(I).Activate 'write delete code For fila = 1 To 10 If Cells(fila, 4).Value = "" Then Rows(fila).Delete End If Next fila 'Go to next sheet Next End Sub
但似乎这个代码只会删除我的第一个活动工作表上的行。 任何想法如何使它在每个表中删除?
谢谢
总是记得在删除对象时(在你的case行中)向后循环,所以使用For i = 10 to 1 Step -1
。
此外,尽量避免使用Select
和Activate
,而是直接引用Worksheet
或Range
。 在这种情况下直接使用定义为Worksheet
的ws
来查看If ws.Cells(fila, 4).Value = ""
码
Option Explicit Private Sub CommandButton1_Click() Dim I As Integer, fila As Long Dim ws As Worksheet ' loop through all worksheets For Each ws In ThisWorkbook.Worksheets ' loop backwards when deleting objects For fila = 10 To 1 Step -1 If ws.Cells(fila, 4).Value = "" Then ws.Rows(fila).Delete Next fila Next ws End Sub