ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Word > 如何用VBA删除每回下的特定标题

如何用VBA删除每回下的特定标题

作者:绿色风 分类: 时间:2022-08-17 浏览:190
楼主
芐雨
Q:如何用VBA删除每回下的特定标题
A:

本事例来自百度
  1. http://zhidao.baidu.com/question/1859768136732377427.html?oldq=1
文本如下:
  1. ●第一回
  2. 张天师祈禳瘟疫
  3. 洪太尉误走妖魔
  4. 仁宗嘉右三年,瘟疫盛行,洪太尉奉皇帝命前往江西信州龙虎山,宣请嗣汉天师张真人来朝禳疫。
  5. 洪太尉上山求见天师不成。回至方丈,不顾众道士劝阻,打开“伏魔之殿”,放出妖魔,遂致大祸。他吩咐从人,隐瞒走妖魔一节,假报天师除尽瘟疫,得到仁宗赏赐。
  6. ●第二回
  7. 王教头私走延安府
  8. 九纹龙大闹史家村
  9. 高俅与端王(后来的徽宗)结识。被提拔为殿帅府太尉,对曾打翻他的王升的儿子八十万禁军教头王进施行报复......



要求:用VBA在文本中删除第*回后标题,如第一回后的【张天师祈禳瘟疫 ,洪太尉误走妖魔】删除,第n回后的也删除等等
用VBA代码实现如下
  1. Sub 删除每回下的标题_芐雨()
  2.     Dim i As Paragraph, n As Long
  3.     Application.ScreenUpdating = False    '关闭屏幕刷新
  4.     On Error Resume Next                  '防错
  5.     For Each i In ActiveDocument.Paragraphs    '在活动文档的段落集合中循环
  6.         i.Range.Characters(1).Select           '选择段落第一个字符,目的是为了光标的跳转

  7.         '判断第一个字符是否等于“●”,第二个字符是否等于“第”
  8.         If i.Range.Characters(1) = "●" And i.Range.Characters(2) = "第" Then
  9.             Selection.MoveDown unit:=wdLine, Count:=1  '下移一行
  10.             Selection.HomeKey unit:=wdLine             '光标到行首
  11.             Selection.EndKey unit:=wdLine, Extend:=wdExtend  '选择光标到行尾
  12.             Selection.Delete                                 '删除
  13.             Selection.HomeKey unit:=wdLine             '光标到行首
  14.             Selection.EndKey unit:=wdLine, Extend:=wdExtend  '选择光标到行尾
  15.             Selection.Delete
  16.         End If
  17.     Next
  18.     Application.ScreenUpdating = True    '恢复屏幕刷新
  19. End Sub

附件

删除每回下的特定标题_芐雨.rar





2楼
芐雨
其实用EXCEL操作技巧也能实现把文本复制粘贴到EXCEL中,操作动画如下:


 

3楼
0Mouse
Word替换(手工操作或VBA)

 
4楼
0Mouse
  1. Sub xqoa()
  2.     With ThisDocument
  3.         If .Paragraphs.Count > 2 Then
  4.             Dim P   As Paragraph
  5.             Dim i   As Integer
  6.             For i = .Paragraphs.Count - 2 To 1 Step -1
  7.                 If .Paragraphs(i).Range Like "●第*" Then
  8.                     .Paragraphs(i + 1).Range.Delete
  9.                     .Paragraphs(i + 2).Range.Delete
  10.                 End If
  11.             Next i
  12.         End If
  13.     End With
  14. End Sub
5楼
0Mouse
Excel基础操作

 
6楼
0Mouse
e问e答的主题帖建议把标题改成“如何……呢?”的形式。
7楼
芐雨
好的
8楼
芐雨
好的,谢谢

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap