ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 如何选择第一页的第一个汉字到下一个空段之间的文字?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2021-3-27 16:16 | 显示全部楼层 |阅读模式
自动判断文章大标题,
如何选定第一页的第一个汉字到下一个空段之间的文字.(如有文号需跳过)

试过以下代码如遇空行将不能准确选择到第一汉字。
ActiveDocument.Words(1).Select    没有空行时,选中第一个字.  有空行时选定第一个空行。而没选择汉字。
ActiveDocument.Sentences(1).Select   
ActiveDocument.Paragraphs(1).Select  

求大神代码.   

例.zip

22.97 KB, 下载次数: 10

TA的精华主题

TA的得分主题

发表于 2021-3-28 00:05 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
* 楼主,请将代码复制到空白文档后,全选,剪切,再粘贴到 VBE 中即可。
  1. Sub test()
  2.     With Selection
  3.         .HomeKey 6
  4.         Do While .Text = vbCr Or .Paragraphs(1).Range Like "*〔20??〕*号*"
  5.             .Move 4
  6.         Loop
  7.         Do
  8.             .MoveEnd 4
  9.         Loop Until .Next.Text = vbCr
  10.         .Font.ColorIndex = wdRed
  11.     End With
  12. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-3-28 08:43 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
413191246se 发表于 2021-3-28 00:05
* 楼主,请将代码复制到空白文档后,全选,剪切,再粘贴到 VBE 中即可。

非常感谢大神的代码。  

能在前边加上一句吗?
IF 文章只有一段文字 且最后无空段  then exit sub最好了,(文章只有一段文字 且最后无空段  这个我不会写成代码)

追加一个问题。如何在处理过标题后,以目前选区下的空行为开始,到第一个冒号结束,设置主送。(把如下:   方面: 结尾的段落排除)

说实话,想象中我想用 range 设置选区(主要是不会用Range设置开始结束)。我还想用这代码,改造一下用在 附件后边大标题,真心话看不懂这些代码的意思,无从下手了。

再次感谢大神,期盼中。

TA的精华主题

TA的得分主题

发表于 2021-3-29 23:40 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
* 新人朋友,你好!——大神 不敢当!略会 VBA 皮毛而已。请删除旧 test 宏,还是先复制到空白文档后再粘贴到 VBE 中(因为如果是 Win10-64位系统,不这样做,代码如果含有中文字符会是乱码)。
* 另外,如果你想编制有关公文自动排版方面的宏,应该提供真实样例附件才好(而不是提供一些这些“敏捷的狐狸”),但关键字要处理一下。
* 你要求的“文章只有一段文字,且最后无空段”这点无法理解,因为新建文档即使只有一个回车符,在 VBA 中也是一个段落。
  1. Sub test()
  2.     With Selection
  3.         .HomeKey 6
  4.         Do While .Text = vbCr Or .Paragraphs(1).Range Like "*〔20??〕*号*"
  5.             .Move 4
  6.         Loop
  7.         Do
  8.             .MoveEnd 4
  9.         Loop Until .Next.Text = vbCr
  10.         .Font.ColorIndex = wdRed
  11.         Do
  12.             .Move 4
  13.         Loop Until .Paragraphs(1).Range Like "*[::]?"
  14.         With .Paragraphs(1).Range
  15.             .Characters.Last.Previous.Text = ":"
  16.             If .ComputeStatistics(1) < 3 Then
  17.                 .Font.Color = wdColorPink
  18.                 With .ParagraphFormat
  19.                     .CharacterUnitFirstLineIndent = 0
  20.                     .FirstLineIndent = CentimetersToPoints(0)
  21.                 End With
  22.             End If
  23.         End With
  24.     End With
  25. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-3-31 00:33 | 显示全部楼层
413191246se 发表于 2021-3-29 23:40
* 新人朋友,你好!——大神 不敢当!略会 VBA 皮毛而已。请删除旧 test 宏,还是先复制到空白文档后再粘贴 ...

再次感谢大神的代码。
说实话是看不懂。想抄抄改改也无从下手

请问大神能注释一下代吗?
do while 怎么设置退出。如果只有一段文字,或没有冒号结尾时会陷入死机状态。
.Paragraphs(1)  是代表第一段吗?

TA的精华主题

TA的得分主题

发表于 2021-3-31 15:09 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
* 楼主,你好!你现在应该打好基础,是否学习过《微软官方VBA帮助文档》VBAWD10.CHM 呢?
* 如果没有学习过,试试能否下载它学习一下,这是我分享的:
https://share.weiyun.com/OPMRJhyJ

TA的精华主题

TA的得分主题

发表于 2021-4-1 00:48 | 显示全部楼层

TA的精华主题

TA的得分主题

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

本版积分规则

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

GMT+8, 2024-11-24 00:41 , Processed in 0.030071 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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