ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1337|回复: 0

[原创] Word文档空行类型和vba批量删除空行的方法

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-2-2 23:22 | 显示全部楼层 |阅读模式
本帖最后由 chendeyan126 于 2019-2-2 23:24 编辑

Word文档空行类型和vba批量删除空行的方法

有一些word文档会存在大量空行,特别是一些从网络上下载的,或是其他软件转换而来的文档。需要批量删除这些空行以方便排版。


空行的类型
先来看看空行的类型。

1. 多余手动换行符产生的空行
如下图所示。可以使用查找替换功能,批量删除。
先执行:
查找:^l{1,}^13
替换:^p
勾选使用通配符,点击全部替换

再执行:
查找:^l{2,}
替换:^l
勾选使用通配符,点击全部替换
手动换行符空行.png


2. 多余段落标志产生的空行
如下图所示。可以使用查找替换功能,批量删除。
查找:^13{2,}
替换:^p
勾选使用通配符,点击全部替换
段落标志空行.png


3. 表格间多余段落标志空行
如下图所示。若表格间只有一个空行,且混杂在一个大文档中,则难以使用查找替换功能,批量删除。
表格间空行.png


4. 表格单元格内多余段落标志空行
如下图所示,若单元格内第一段就是空行时,且该表格混杂在一个大文档中,则该空行难以用查找替换功能删除。另外,单元格至少都有一个段落标志,所以空单元格的段落标志无法删除。其他空行可以用查找替换功能删除。
表格内空行.png


5. 分节符空行
一个段落可以以段落标志结束,也可以以分节符结束。如下图所示,一个段落标志跟着一个分节符,其实这里算是两个空行。这种空行很可能是不应该被删除的。
分节符空行.png


vba批量删除文档空行的方法
代码1
代码来源于书本《WORD排版之道》(宋翔 著)283页。
以段落为基本单元,判断段落字符长度为1,则删除。所以也会把分节符删除。除了手动换行符的空行和空单元格空行外,都会删除。
Sub 删除文档内的所有空行()
       DimoPara As Paragraph, I As Long
       Application.ScreenUpdating= False
       ForEach oPara In ActiveDocument.Paragraphs
              IfLen(oPara.Range) = 1 Then
                     oPara.Range.Delete
                     i= i + 1
              EndIf
       NextoPara
       MsgBox"已删除"& i & "个空行"
       Application.ScreenUpdating= True
End Sub

代码2
在代码1的基础上加了一句And Right(oPara.Range, 1) =Chr(13),删除文档内的所有带段落标志空行,而不删除分节符空行
除了手动换行符的空行和空单元格空行外,都会删除。
Sub 删除文档内的所有带段落标志空行()
Dim oPara As Paragraph, I As Long
Application.ScreenUpdating = False
For Each oPara In ActiveDocument.Paragraphs
   If Len(oPara.Range) = 1 And Right(oPara.Range, 1) = Chr(13) Then
       oPara.Range.Delete
       I = I + 1
   End If
Next oPara
MsgBox "已删除" & I & "个带段落标志空行"
Application.ScreenUpdating = True
End Sub

手动换行符的空行,可以使用查找替换的办法,事先处理。也可以通过录制宏的方式,录制查找替换的过程,得到vba代码后,放到前面两个代码中。


评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-20 15:00 , Processed in 0.039501 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表