ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] 各种空格的输入和查找方法

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-11-25 11:31 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
因为遇到过需要查找连续空格的问题,在代码里怎么表示犯了难。
通过专门对空格的研究,空格的输入、选择和在VBA中的表示方法总结了一些经验。
常见的空格种类:
微信截图_20191125110811.png
在VBA中的空格,每一行代码都有所区别,有需要的可以逐条运行看效果:
实际运用时按需选择
  1. Sub 空格输入和选择试验()
  2. Set docNew = Documents.Add
  3. ActiveWindow.Panes(1).View.ShowAll = True
  4.     With docNew.Content
  5.         .InsertAfter " " & "粘贴到代码窗口的半角空格" & vbCr
  6.         .InsertAfter " " & "粘贴到代码窗口的全角空格" & vbCr
  7.         .InsertAfter Space(1) & "Space函数得到的半角空格" & vbCr
  8.         .InsertAfter Chr(32) & "ASCII码得到的半角空格" & vbCr
  9.         .InsertAfter ChrW(160) & "Unicode码得到的半角空格" & vbCr
  10.         .InsertAfter ChrW(12288) & "Unicode码得到的全角空格" & vbCr
  11.         .InsertAfter "   " & "粘贴到代码窗口的3个连续半角空格" & vbCr
  12.         .InsertAfter "   " & "粘贴到代码窗口的3个连续全角空格" & vbCr
  13.         .InsertAfter Space(3) & "Space函数得到的3个连续半角空格" & vbCr
  14.         .InsertAfter String(4, 32) & "ASCII码得到的4个连续半角空格" & vbCr
  15.         .InsertAfter String(5, ChrW(160)) & "Unicode码得到的5个连续半角空格" & vbCr
  16.         .InsertAfter String(6, ChrW(12288)) & "Unicode码得到的6个连续全角空格" & vbCr
  17.         Stop
  18.         .Font.Name = "宋体" '注意观察字体改变后,句号型半角空格的变化
  19.     End With
  20.     With Selection.Find
  21.         .Execute Space(5) '查找5个连续的无论以什么方式获得的半角空格
  22.         .Parent.HomeKey wdStory
  23.         .Execute String(6, ChrW(12288)) '查找6个连续的全角空格
  24.     End With
  25. End Sub
复制代码
微信截图_20191125112922.png


评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-11-25 13:58 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-11-25 15:02 | 显示全部楼层
可使用如下代码尝试删除不间断空格和全角空格。

==============================
sub 删除不间断空格和全角空格()
       ActiveDocument.Content.Find.Execute FindText:=ChrW(160), ReplaceWith:="", Replace:=wdReplaceAll '删除不间断空格
       ActiveDocument.Content.Find.Execute FindText:=" ", ReplaceWith:="", Replace:=wdReplaceAll, MatchWildcards:=True '删除全角空格
End Sub

TA的精华主题

TA的得分主题

发表于 2020-4-11 01:11 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
cuanju 发表于 2019-11-25 15:02
可使用如下代码尝试删除不间断空格和全角空格。

==============================

删除不间断空间原来如此简单。

由于刚注册级别低不能发站内短信。 还有一个问题借此贴一并请教了:
由于经常识别一些文字,需要断行重排。如果直接 直接删除行尾的^p,会把一些短标题都连成一段。 我的思路如下:
1   选择一句最长的句子,取字数,比这个数少3个字的段落标记不删。
3  以“ 。 ; ! "结尾的段落标记不删。
4  其余的段落标记和硬回车删掉完成断句相连。
期待您的代码。

TA的精华主题

TA的得分主题

发表于 2020-5-11 08:52 | 显示全部楼层
小声说话666 发表于 2020-4-11 01:11
删除不间断空间原来如此简单。

由于刚注册级别低不能发站内短信。 还有一个问题借此贴一并请教了:

If Selection.Characters.Last.Text = Chr(13) Then
Selection.Characters.Last.Font.Underline = wdUnderlineNone
Selection.MoveEnd 1, -1
End If
s = Selection.Text

TA的精华主题

TA的得分主题

发表于 2020-5-11 23:43 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
nikichannel 发表于 2020-5-11 08:52
If Selection.Characters.Last.Text = Chr(13) Then
Selection.Characters.Last.Font.Underline = wdUnd ...

实话实说,小白一个.   你的代码真没看懂,  这段代码我试了一下没啥反应, 能否标注一下每句的意思.

一直在论坛里抄作业, 以我的理解组合了一个代码,  可否移驾审阅一下

http://club.excelhome.net/thread-1532715-1-2.html

在WORD 如果圈选一句话, 会直接显示在查找替换框里.
我的思路是根据圈选的句子返回一个数值 当一个变量  对应我代码里的 25 这个字数
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-28 04:44 , Processed in 0.051240 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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