首页 > 其他分享 >【VBA】在段落标题前后新增文字

【VBA】在段落标题前后新增文字

时间:2023-06-24 17:55:24浏览次数:41  
标签:段落 VBA para newParagraphRange 标题 RPA 插入 Range

要想将文章中所有的:

1.1.1.1    110kV#1主变
1.1.1.1.1    RPA_分隔

替换为

RPA_分隔
1.1.1.1 110kV#1主变 RPA_分隔 RPA_节点内容 500kV广南巡维中心【RPA_节点】220kV谷围站【RPA_节点】主变区域【RPA_节点】#1主变间隔 一次 RPA_节点内容 1.1.1.1.1 #RPA_分隔

可以使用VBA来进行操作。

  1. 保存一份源文档的副本。VBA的修改是难以撤销的。也可以先复制一部分出来到新文档进行试验。
  2. 打开 Word 文档。

  3. 按下 "Alt" + "F11" 打开 Visual Basic for Applications (VBA) 编辑器。

  4. 在 VBA 编辑器中,点击"插入(Insert)",然后选择"模块(Module)"。

  5. 添加对 Microsoft VBScript Regular Expressions 的引用。在 VBA 编辑器中,选择 "工具" 菜单,然后选择 "引用"。在弹出的对话框中找到并勾选 "Microsoft VBScript Regular Expressions",点击 "确定"。(重要!没有这一步可能运行正则表达式会出错)
  6. 在新建的模块中粘贴以下宏代码:

Function GetTextWithoutNumberPrefix(paragraphText As String) As String
    Dim regex As Object
    Set regex = CreateObject("VBScript.RegExp")
    
    ' 定义匹配模式,匹配目录层级数字(一般为 1.、2.、3.)和空格
    regex.Pattern = "^\d+\.\s"
    
    ' 将匹配到的部分替换为空字符串
    GetTextWithoutNumberPrefix = regex.Replace(paragraphText, "")
End Function
Function GetTextWithoutNumberPrefix1(paragraphText As String) As String
    Dim regex As Object
    Set regex = CreateObject("VBScript.RegExp")
    
    ' 定义匹配模式,匹配目录层级数字(一般为 1.、2.、3.)和空格
    regex.Pattern = "^\d+\)\s"
    
    ' 将匹配到的部分替换为空字符串
    GetTextWithoutNumberPrefix1 = regex.Replace(paragraphText, "")
End Function

Sub AddTextAfterHeadings()
    Dim rng As Range
    
    Set rng = ActiveDocument.Content
    
    For Each para In rng.Paragraphs
        If para.Style = "操作票样式4" Then
            With para.Range
                ' 段落前
                
                
                para.Range.InsertBefore "RPA_分隔" & vbCr
                ' 获取新插入的段落行
                Dim newParagraphRange As Range
                Set newParagraphRange = para.Range.Previous
                ' 将新插入的段落行的格式设置为与目标段落相同
                newParagraphRange.Style = wdStyleNormal ' 设置新段落为正文格式
               
                
                ' 段落后
                para.Range.InsertAfter "RPA_节点内容" & vbCr
                ' 获取新插入的段落行
                Set newParagraphRange = para.Range.Next
                ' 将新插入的段落行的格式设置为与目标段落相同
                newParagraphRange.Style = wdStyleNormal ' 设置新段落为正文格式
                
                para.Range.InsertAfter "一次" & vbCr
                ' 获取新插入的段落行
                Set newParagraphRange = para.Range.Next
                ' 将新插入的段落行的格式设置为与目标段落相同
                newParagraphRange.Style = wdStyleNormal ' 设置新段落为正文格式
                
                para.Range.InsertAfter "500kV广南巡维中心【RPA_节点】220kV谷围站【RPA_节点】主变区域【RPA_节点】#1主变间隔" & vbCr
                ' 获取新插入的段落行
                Set newParagraphRange = para.Range.Next
                ' 将新插入的段落行的格式设置为与目标段落相同
                newParagraphRange.Style = wdStyleNormal ' 设置新段落为正文格式
                
                para.Range.InsertAfter "RPA_节点内容" & vbCr
                ' 获取新插入的段落行
                Set newParagraphRange = para.Range.Next
                ' 将新插入的段落行的格式设置为与目标段落相同
                newParagraphRange.Style = wdStyleNormal ' 设置新段落为正文格式
                
                para.Range.InsertAfter "RPA_分隔" & vbCr
                ' 获取新插入的段落行
                Set newParagraphRange = para.Range.Next
                ' 将新插入的段落行的格式设置为与目标段落相同
                newParagraphRange.Style = wdStyleNormal ' 设置新段落为正文格式
                                
            End With
        End If
        
        If para.Style = "操作票样式5" Then
            para.Range.InsertBefore "#"
        End If
    Next para
End Sub
  1. 关闭 VBA 编辑器。

  2. 运行宏:按下 "Alt" + "F8" 打开宏对话框,在列表中选择 "AddTextAfterHeadings" 宏,然后点击 "运行(Run)" 按钮。

RPA_分隔

标签:段落,VBA,para,newParagraphRange,标题,RPA,插入,Range
From: https://www.cnblogs.com/nntzhc/p/17501418.html

相关文章

  • 【VBA】如何在WORD文件的每个自动序号后修改字符
    要想将文章中所有的:1)实例文字替换为1)#示例文字可以使用VBA来进行操作。保存一份源文档的副本。VBA的修改是难以撤销的。也可以先复制一部分出来到新文档进行试验。打开Word文档。按下"Alt"+"F11"打开VisualBasicforApplications(VBA)编辑器。在VBA......
  • VBA对象:Workbooks、Worksheets、Range1
     Workbooks打开工作簿使用VBA可以打开指定位置的目标工作簿,使用Workbooks集合的Open方法。SubWB()'打开工作簿,需要指定完整的路径、名称、后缀名Workbooks.Open"D:\Files\工作簿1.xlsx"EndSub新建工作簿使用Workbooks集合的Add方法创建新的工作簿:S......
  • VBA中运算符
    VBA中的运算符可以分为以下6类:赋值运算符算数运算符比较运算符逻辑运算符连接运算符其他运算符......
  • VBA中数据自动类型转换
    浮点型数值→赋值给整数型数值浮点类型数值赋值给整数类型变量时,自动转换为整数类型,并按四舍五入规则取整(x.5向下取整)。DimiAsIntegeri=1.23'i->1i=0.9'i->1i=1.5'i->1 字符串表示的纯数字→数值使用文本表示的纯数字,表达式和赋值语句中自动转换为数字......
  • python批量调整docx段落格式
    平时使用WechatDownload保存了很多技术文章,格式比较乱。比如很多空白行、英文乱码、页面左右缩进太多等问题,今天一并解决一下安装python-docxfromdocximportDocumentfromdocx.sharedimportCmimportosrootdir=r'E:\vxWEB\GIS'forfilesinos.listdir(rootdir):......
  • 【无标题】三段大厂实习经历,我学到了什么?
    大家好,我是Angus,来自一所普通一本院校的大四学生,普通且平凡,2021年,应该是我人生最跌宕起伏的一年,在农历2021年的最后一天,在除夕,我打算写下这篇文章,想给那些正在打算找实习或者正在实习的朋友,分享一下我的经历,希望能给大家带来一些鼓励和帮助,也在这里祝大家新年快乐,事事如意。三月时......
  • 以下是一些可能适用于代码质量领域的热门博客文章标题,以逻辑清晰、结构紧凑、简单易懂
    目录引言随着软件开发的越来越复杂和广泛的应用,代码质量成为了一个越来越重要的话题。在软件开发中,代码质量指的是代码的可读性、可维护性、可扩展性、安全性等方面的质量。优秀的代码质量不仅可以提高软件的稳定性和可靠性,还可以减少代码重构和维护的时间和成本。因此,对于程......
  • 人工智能在智能家居控制器中的应用,打造智慧家居控制器的100篇热门博客文章标题示例
    目录引言随着人工智能技术的不断发展,智能家居控制器作为人工智能在家居领域的一个重要应用,其重要性日益凸显。智能家居控制器不仅可以实现智能化的家居控制,还可以提高家居安全性、便利性和舒适性。本文将介绍人工智能在智能家居控制器中的应用,以及打造智慧家居控制器的100篇热......
  • 好的,以下是我为您拟定的自然语言处理(NLP)领域的100篇热门博客文章标题,以逻辑清晰、结
    目录1.引言2.技术原理及概念3.实现步骤与流程4.应用示例与代码实现讲解1.机器翻译2.文本分类3.情感分析5.优化与改进6.结论与展望好的,以下是我为您拟定的自然语言处理(NLP)领域的100篇热门博客文章标题,以逻辑清晰、结构紧凑、简单易懂的专业技术语言:1.《自然语言处理(NLP)......
  • TableRow 背景问题以及修改对话框标题高度或者图片
    <TableRowxmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/admin_row"android:layout_width="fill_parent"android:layout_height="wrap_content"......