ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 删除段落首尾空格没有效果

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-4-21 06:28 | 显示全部楼层
duquancai 发表于 2017-4-20 22:51
对于缩进,并非本题研究的范围。只是删除段首和段尾的空白区域。

忍不了要多问两句:
为什么下面的代码在别的文档上屡试不爽:能够删去段落首位和汉字之间的空格,而在此处却不行了呢?
这到底是怎么回事呢?
愿闻其详,听杜老师讲解一二……

Sub 删除段落首位空格没有效果()
SendKeys "^(ael)"
SendKeys "{Enter}"
With ActiveDocument
  With .Content.Find
        .Execute "([!^13]@)^32{1,}(^13)", , , 1, , , , , , "\1\2", 2 '删去段尾的空格。
     .Execute "(^32{1,})([!^13]@)(^13)", , , 1, , , , , , "\2\3", 2 '删去段首的空格
     .Execute "([一-隝])(^32{1,})([一-隝])", , , 1, , , , , , "\1\3", 2 '删除汉字之间的空格
     ’.Execute "([!一-隝^1-^127])([^32]{1,})(*)", , , 1, , , , , , "\1\3", 2
       .Execute "([!一-隝^1-^127])([^32]{1,})([!^32]@)", , , 1, , , , , , "\1\3", 2
       .Execute "([!^32]@)([^32]{1,})([!一-隝^1-^127])", , , 1, , , , , , "\1\3", 2
  End With
  For i = 1 To .Paragraphs(.Paragraphs.Count)
      .Paragraphs(i).Format.CharacterUnitLeftIndent = 2
  Next
End With
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-4-21 06:42 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 weiyingde 于 2017-4-21 06:53 编辑

经过观察发现:中间的空格,既不是全角空格,也不是半角空格。
全、半角空格的宽度分别相当于一个或半个汉字的宽度;而文档中的空格,要不就是三个汉字的宽度,要不就是半角的一半。
这到底是什么空格呢?
又是怎么输入上去的呢?
字符代码是什么呢?
又能用什么方法去删除呢?
……
茫然不得其解????

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-4-21 07:06 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 weiyingde 于 2017-4-21 08:06 编辑
duquancai 发表于 2017-4-20 22:42
中间本来就不要删除,只是删除 段首和段尾的


又把你的原文档对比了一下,发现首尾的空格和中间的空格一样,猜想:
想必\xa0\s\u3000就是他们的正则代码吧。
是不是?
如果是,那么另两种空格的名称是什么?是怎么输入的呢?

TA的精华主题

TA的得分主题

发表于 2017-4-21 14:56 | 显示全部楼层
本帖最后由 13907933959 于 2017-4-22 08:34 编辑
weiyingde 发表于 2017-4-20 22:34
是的,没有效果,我的代码是:
Sub 删除段落首位空格没有效果()
SendKeys "^(ael)"

对4楼、杜前辈“附件”上的空格、空白区域,我用的是简单粗暴的方法,好像也可以删除。

Sub 删除空格_空白区域()
    ActiveDocument.Content.Find.Execute findtext:=" ", replacewith:="", Replace:=wdReplaceAll
    ActiveDocument.Content.Find.Execute findtext:="^w", replacewith:="", Replace:=wdReplaceAll
End Sub

TA的精华主题

TA的得分主题

发表于 2017-4-21 17:12 来自手机 | 显示全部楼层
本帖最后由 duquancai 于 2017-4-21 17:18 编辑

不要回避主题,最有意义的是   删除每一段(如果有的话)段首和段尾的空白区域,除了段首和段尾的其它段落中的空白区域千万不要删除了!千万别 答非所问!!!

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-4-21 20:09 | 显示全部楼层
13907933959 发表于 2017-4-21 14:56
对4楼杜前辈“附件”上的空格、空白区域,我用的是简单粗暴的方法,可以删除。

Sub 删除空格_空白区 ...

确实有效,很好。

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-4-21 20:23 | 显示全部楼层
13907933959 发表于 2017-4-21 14:56
对4楼杜前辈“附件”上的空格、空白区域,我用的是简单粗暴的方法,可以删除。

Sub 删除空格_空白区 ...

其实只有一句就行:
ActiveDocument.Content.Find.Execute "^w", , , , , , , , , "", 2
但有个问题,不能变通。

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-4-21 20:33 | 显示全部楼层
duquancai 发表于 2017-4-21 17:12
不要回避主题,最有意义的是   删除每一段(如果有的话)段首和段尾的空白区域,除了段首和段尾的其它段落 ...

杜老师,尽管不是这个帖子的主题,但还是想向你请教:
有没有通吃段落空格所有空格(只保留英文单词之间半角空格)的简单而完美的解决方案的代码?

TA的精华主题

TA的得分主题

发表于 2017-4-21 21:35 来自手机 | 显示全部楼层
weiyingde 发表于 2017-4-21 20:33
杜老师,尽管不是这个帖子的主题,但还是想向你请教:
有没有通吃段落空格所有空格(只保留英文单词之间 ...

有。。。。。。。。。

TA的精华主题

TA的得分主题

发表于 2017-8-16 15:08 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

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

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

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

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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