快速搞定Excel里的空白列,告别繁琐操作,效率翻倍!

【分享成果,传递正能量】当我们能够掌控自己的心,让它安定下来,并学会收敛脾气,我们的情绪就会变得更加平和。当我们的宽容和爱心影响他人,使他们感受到幸福和快乐时,这也是我们收获的一种福气。尽管善良和真心可能会受到伤害和辜负,但如果内心坦然无疚,福气或许来得晚些,但绝不会缺席。

我要分享的是《VBA代码解决方案》这套教程,这是我早期推出的作品,目前已经是第二版了。这套教程是为了帮助学习者在掌握基础后进一步提高。学习这套教程的关键在于理解和运用我的“积木编程”思想,像搭积木一样灵活应用教程中的实例来编写自己喜爱的代码。

这套教程共分为三册,包含一百四十七讲,内容广泛,适合初级到中级的学习者。新版教程提供了程序源码文件,并且代码已经修正为32位和64位兼容。接下来,我会陆续推出更多内容。今天的内容是第23讲:如何利用VBA删除Excel工作表中的空白行。

第二十三讲:Excel中如何删除工作表中的空白行

今天,我为大家讲解VBA代码解决方案的第二十三讲,内容是如何在Excel中删除工作表中的空白行。我们将重点讲解Range对象的Delete方法,这个方法在VBA中非常常用,不仅可以用于删除值,还可以用于删除格式和行等。

Delete方法的语法为:expression.Delete(Shift)。其中,expression是必需的,返回一个Range对象;Shift是可选参数,用于指定删除单元格时替补单元格的移位方式。

下面是一个实际应用Delete方法的示例代码,用于删除空白行:

vba

Sub mynz_23() ‘第23讲 Excel中如何删除工作表中的空白行

Dim rRow As Long, LRow As Long, i As Long

Dim ws As Worksheet

Set ws = ThisWorkbook.Sheets(“23”) ‘指定工作表

rRow = ws.UsedRange.Row ‘获取已使用区域的首行行号

LRow = rRow + ws.UsedRange.Rows.Count – 1 ‘获取已使用区域的最后一行行号

‘从下往上循环判断并删除空白行

For i = LRow To rRow Step -1

If Application.WorksheetFunction.CountA(ws.Rows(i)) = 0 Then ‘判断当前行是否为空行

ws.Rows(i).Delete ‘删除空行

End If

Next i

End Sub

代码解析:

1. 该过程用于删除工作表中已使用区域的所有空行。

2. 第4行代码指定了工作表。

3. 第5、6行代码获取了工作表中已使用区域的首行行号和最后一行行号。

4. 循环从最大行数至最小行数判断指定行是否为空行,若为空行则删除该行。

5. 使用CountA函数判断当前行已使用单元格的数量,如果为零则说明此行是空行。

6. Delete方法用于删除选中的行。

需要注意的是,循环判断时需要从最大行数至最小行数进行,因为如果存在相邻的空行,从最小行数开始循环删除时可能会出现漏删现象。

运行结果:执行该过程后,工作表中的空白行将被删除。

今日内容回顾:

1. 删除工作表空行的思路是什么?

2. 如何获取工作表中已使用区域的行号?

3. 如何判断一行是否为空行并删除?

本讲内容参考程序文件:VBA代码解决方案修订版本。我多年的VBA实践经验都包含在这些教程中,希望对大家有所帮助。