ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享]空白段落的删除问题

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2015-3-9 12:07 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢楼主分享

TA的精华主题

TA的得分主题

发表于 2015-3-24 14:09 | 显示全部楼层
前辈您好!我是一个新人,特来向您请教,怎样才能把WORD文档中未设置标题格式的很多不同的副标题一次性批量替换字体或颜色(文档中的小标题、副标题只是采用了简单的另起一行的方式,小标题、副标题也不是居中格式,标题前也没有什么固定的序号,各个标题的内容、长短也不样),象这样的问题我经常碰到,也困扰了我很长时间,望能得到您的解答,在下将万分感谢!盼望前辈的回复。谢谢!

TA的精华主题

TA的得分主题

发表于 2017-4-12 14:31 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
shewoyu 发表于 2006-7-22 12:01
QUOTE:以下是引用守柔在2003-10-26 7:31:00的发言:Sub blankdel()For Each i In ActiveDocument.Paragraph ...

加一句可以:
Sub blankdel()
ActiveDocument.Content.Find.Execute "^11", , , 1, , , , , , "^p", 2
For Each i In ActiveDocument.Paragraphs
a = i.Range.End
b = i.Range.Start
If a - b = 1 Then
i.Range.Delete
m = m + 1
End If
Next i
MsgBox "共删除空白段落" & m & "个"

TA的精华主题

TA的得分主题

发表于 2019-9-17 16:21 | 显示全部楼层
如果这个页面有一张图片,图片是置于上层的会被删掉

TA的精华主题

TA的得分主题

发表于 2020-1-19 11:36 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
守柔 发表于 2003-10-15 16:12
经过多次试验,简化了一些代码,对于长文档和多段落,可以加提高25%的运行速度,对于1000个段落以上的文档 ...

学习了,也献丑一个。
Sub 删除空行()
    Dim par As Paragraph
    For Each par In ActiveDocument.Paragraphs
        If Len(par.Range) = 1 Then par.Range.Delete
    Next
End Sub

TA的精华主题

TA的得分主题

发表于 2020-5-20 17:26 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2020-7-19 16:05 | 显示全部楼层
weiyingde 发表于 2020-1-19 11:36
学习了,也献丑一个。
Sub 删除空行()
    Dim par As Paragraph

和守版后面提供的代码一样

TA的精华主题

TA的得分主题

发表于 2020-7-26 14:01 | 显示全部楼层
本帖最后由 413191246se 于 2020-7-26 14:02 编辑

空白段落,也叫空白行,空行,看着空白,也许包含着一般所说的——半角空格/全角空格/不间断空格/制表符,这四种常规可见的空格;如果还包含不可见空格,就不好说了!这还是纯文本状态下,表格中的空格的删除另说。
* 下面我提供一下纯文本(无表格)中空白段落(空白行/空行)的删除代码:
  1. Sub 删除空行_纯文本()
  2.     Dim i As Paragraph
  3.     With ActiveDocument
  4.         '真假回车符/手动换行符=>段落标记
  5.         .Content.Find.Execute "[^13^11]", , , 1, , , , , , "^p", 2
  6.         '全选
  7.         .Select
  8.         '居中/两端对齐=>删除段落首尾空格(半角空格/全角空格/不间断空格/制表符)
  9.         CommandBars.FindControl(ID:=122).Execute
  10.         CommandBars.FindControl(ID:=123).Execute
  11.         '删除空行(循环遍历所有段落)
  12.         For Each i In .Paragraphs
  13.             If Asc(i.Range) = 13 Then i.Range.Delete
  14.         Next
  15.     End With
  16. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2021-4-22 22:01 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
我不懂VB,从您发表的帖子来看,应是个高手。 特地向守柔请教,怎样学VB?应该有什么基础?

TA的精华主题

TA的得分主题

发表于 2021-4-25 21:04 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

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

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

GMT+8, 2024-4-25 02:17 , Processed in 0.037960 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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