ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

谢谢守柔斑竹,我的问题圆满解决,贴上我的程序

[复制链接]

TA的精华主题

TA的得分主题

发表于 2005-8-13 18:12 | 显示全部楼层 |阅读模式

非常感谢守斑竹,我的问题在你和大家的帮助下已经圆满解决,下面是相应的程序。后来我问的几个问题都是跟解决着个问题有关。不过现在还是按守斑竹的程序思路才解决了问题。十分感谢。希望守斑竹有时间能给我们讲讲word中常用的简单对象的知识。再次3Q.

Sub workying() ' ' workying Macro ' 宏在 2005-8-13 由 king 创建 'Sub datwork() Dim MyKeyText() As Variant, i As Paragraph, n As Long, m As Long, flag As Byte MyKeyText() = Array("Official Symbol", "Name", "Other Aliases", "Other Designations", "Chromosome", "Location", "GeneID") Set doc = ActiveDocument Application.ScreenUpdating = False '关闭屏幕刷新

'===========================去掉and 给Name换行 With doc.Content.Find .ClearFormatting .Text = "and " .Replacement.ClearFormatting .Replacement.Text = "^p" .Execute Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue

End With '===========================给Location换行 With doc.Content.Find .ClearFormatting .Text = "Location" .Replacement.ClearFormatting .Replacement.Text = "^pLocation" .Execute Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue End With '===========================去掉所有空行 For Each i In doc.Paragraphs '在活动文档的段落集合中循环 If Len(i.Range) = 1 Then '判断段落长段,此处可根据文档实际情况 i.Range.Delete '进行必要的修改可将任意长度段落删除 End If Next '=========================== '===========================

For Each i In ActiveDocument.Paragraphs '在活动文档的段落集合中循环 flag = 0 If VBA.InStr(i.Range, "Links") <> 0 Then 'i.Range.InsertBefore Chr(13) n = -1 m = m + 1 flag = 1 End If Do While (flag = 0) And (n < 6) n = n + 1 If (VBA.InStr(i.Range, MyKeyText(n)) = 0) And ((n <> 1) Or (VBA.InStr(i.Range, "similar") = 0)) Then i.Range.InsertBefore Chr(13) Else Exit Do End If Loop Next '=========================== '=========================== 'MsgBox "共有" & m & "个数据!" Application.ScreenUpdating = True '恢复屏幕刷新 End Sub

TA的精华主题

TA的得分主题

发表于 2005-8-14 06:15 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

好,写得不错,也很规范!

建议由于空白段落也可以使用查找与替换的方式(通常需要三次以上替换,即"^p^p"替换为"^p"),加之你本来有两个查找与替换,可以考虑使用写个循环的方法,也是使用数组,这对于大文档,特别有用。也就是说查找与替换法删除空白段落,在长文档中,比在段落中循环更快。

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

本版积分规则

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

GMT+8, 2024-11-15 12:16 , Processed in 0.029449 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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