首页 > 其他分享 >vba 处理word 的一些代码:修改公式(1--1)为(1-1)

vba 处理word 的一些代码:修改公式(1--1)为(1-1)

时间:2023-10-29 15:22:35浏览次数:43  
标签:Count Dim vba word -- oEq oMaths TabStops tabStop

Sub ConvertSpecificEquationsToText()
Dim oEq As OMath
Dim eqText As String
Dim regEx As Object
Set regEx = CreateObject("VBScript.RegExp")

' Define the regular expression pattern
regEx.Pattern = "(\d.?\d)" ' Pattern for (digit?digit)
regEx.Global = True

' Loop through each equation in the document
Dim oMaths As oMaths
Set oMaths = ActiveDocument.oMaths

Dim i As Long
Dim p As Paragraph
Dim tabStop As tabStop
Dim tabsArray() As Double
Dim alignsArray() As WdTabAlignment
Dim leadersArray() As WdTabLeader
Dim j As Integer

For i = oMaths.Count To 1 Step -1
    Set oEq = oMaths(i)
    eqText = oEq.Range.Text
    Debug.Print "Equation Text: " & eqText
    
    ' Check if the equation text matches the pattern
    If regEx.Test(eqText) Then
        ' Store current paragraph's tab stops
        Set p = oEq.Range.Paragraphs(1)
        
        ReDim tabsArray(1 To p.TabStops.Count)
        ReDim alignsArray(1 To p.TabStops.Count)
        ReDim leadersArray(1 To p.TabStops.Count)
        
        For j = 1 To p.TabStops.Count
            Set tabStop = p.TabStops(j)
            tabsArray(j) = tabStop.Position
            alignsArray(j) = tabStop.Alignment
            leadersArray(j) = tabStop.Leader
        Next j
        
        ' Convert the equation to normal text
        oEq.Range.oMaths(1).ConvertToNormalText
        
        ' Apply the "Normal" style
        oEq.Range.Style = wdStyleNormal
        
        ' Restore the tab stops
        p.TabStops.ClearAll
        For j = 1 To UBound(tabsArray)
            p.TabStops.Add Position:=tabsArray(j), Alignment:=alignsArray(j), Leader:=leadersArray(j)
        Next j
        
        Debug.Print "Converted: " & oEq.Range.Text
    End If
Next i

End Sub

标签:Count,Dim,vba,word,--,oEq,oMaths,TabStops,tabStop
From: https://www.cnblogs.com/uceec00/p/17795910.html

相关文章

  • 欧几里得
    \(\rmL\):我们现在要解\(ax\equiv1\pmodp\)的同余方程\(\rmP\):用欧拉定理来求逆元是熟知的\(\rmL\):现在进行另一种处理,\(x\)是\(ax+py-1=0\)这个不定方程的整数解\(\rmP\):根据裴蜀定理,可以推广为求\(ax+by=(a,b)\)的整数解\(\rmL\):考虑将其变形为\(a......
  • c++中重载、重写、隐藏的区别
    重载:同一个函数的不同表现形式。同一个类中;函数原型不同(函数名相同,参数列表即顺序、个数、类型不同);virtual关键字可有可无。 重写:继承关系中,派生类对基类同名函数有不同的表现形式。有继承关系的类;函数原型相同;基类成员函数必须声明为虚函数(virtual)。 隐藏:继......
  • 学习笔记7
    苏格拉底挑战第四章并发编程一、知识点归纳(一)线程1.线程的原理2.线程的优点(1)线程创建和切换速度更快(2)线程的响应速度更快(3)线程更适合并行计算3.线程的缺点(1)由于地址空间共享,线程需要来自用户的明确同步。(2)许多库函数可能对线程不安全。(3)在单CPU系统......
  • java学习-API
    APIjava中的API:就是jdk中提供的各种功能的java类,这些类将底层的实现封装了起来,使用的时候直接调用即可类的例子键盘录入:Scanner类next():遇到了空格就不会继续录入数据nextLine():可以将数据完整的接受过来,结束的标志就是回车换行符号例子packagecom.mystudy.APIlei;im......
  • Python 实现 xls 文件转 xlsx 的若干方法
    在Python中,可以采用pandas、pyexcel、win32com和xls2xlsx这四个模块,实现xls转xlsx格式。以Excel示例文件test_Excel.xls为例,具体内容如下图所示:  pandas 安装命令pipinstallpandas-ihttps://mirrors.aliyun.com/pypi/simple具体使用方法importpa......
  • #链表#CF706E Working routine
    题目给出一个\(n*m\)的矩阵,每次交换两个等大的矩阵,输出\(q\)次操作后的矩阵分析维护向右和向下的指针,考虑最后输出只需要从每行的头指针向右跳,那么修改实际上是将矩阵左边一列、上面一行、最后一行和最后一列向右下指针交换时间复杂度\(O((n+m)Q)\)代码#include<cs......
  • kafka代码实践
    安装kafka:Windows安装kafka,详情见:https://blog.csdn.net/sinat_32502451/article/details/133067851Linux安装kafka,详情见:https://blog.csdn.net/sinat_32502451/article/details/133080353添加依赖包:<dependency><groupId>org.springframework.k......
  • uniapp项目APP端安卓ios权限检测教程
    导语:在APP的日常开发过程中,权限检测与授权是不可避免的一项重要的功能,下面就简单介绍一下如何检测和授权的方法。目录原理方法实战原理此授权方法主要是依托于HTML5产业联盟的HTML5+规范实现的。HTML5产业联盟官网获取当前操作系统名称可以使用uni.getSystemInf......
  • 《Attention Is All You Need》阅读笔记
    论文标题《AttentionIsAllYouNeed》XXXIsAllYouNeed已经成一个梗了,现在出现了很多叫XXXIsAllYouNeed的文章,简直标题党啊,也不写方法,也不写结果,有点理解老师扣论文题目了。作者这个作者栏太夸张了。八个作者全部标星,均等贡献。甚至专门写了一段介绍每个人的工......
  • 弱符号与强符号 vs 弱引用与强引用
    弱符号与强符号说明对于C/C++语言来说,编译器默认函数和初始化了的全局变量为强符号,未初始化的全局变量为弱符号。我们也可以通过GCC的"__attribute__((weak))"来定义任何一个强符号为弱符号。注意,强符号和弱符号都是针对定义来说的,不是针对符号的引用。比如我们有下面这段程序:......