如何用 MS Word 中的一些计算替换括号中的数字

当我在文章中间插入新参考文献时,我在替换 MS word 中的某些序列号时遇到问题,例如 [30] [31] [32]... 到 [31] [32] [33]... . 我还没有在 GUI 中找到解决方法,所以我尝试使用 VBA 来进行替换。我在堆栈溢出中发现了类似的问题:

MS Word 宏可增加 Word 文档中的所有数字

但是,这种方式有点不方便,因为它必须在其他地方生成一些替换数组。我可以用正则表达式和 MS Word VBA 中的一些函数进行替换,如下面的代码吗?

Sub replaceWithregExp()

Dim regExp As Object
Dim regx, S$, Strnew$
Set regExp = CreateObject("vbscript.regexp")
With regExp
    .Pattern = "\[([0-9]{2})\]"
    .Global = True
End With
'How to do some calculations with $1?
Selection.Text = regExp.Replace(Selection.Text, "[$1]")
End Sub

但我不知道如何用 regExp 中的 $1 进行一些计算?我尝试使用“[$1+1]”,但它返回 [31+1] [32+1] [33+1]。任何人都可以帮忙吗?谢谢!

维克多·斯特里比尤夫

不可能将回调函数传递给RegExp.Replace,因此您只有唯一的选择:RegExp.execute在循环中使用和处理匹配项。

这是您案例的示例代码(我采用了快捷方式,因为您只有在已知分隔符中修改的值,[以及].)

Sub replaceWithregExp()

Dim regExp As Object
Dim regx, S$, Strnew$
Set regExp = CreateObject("vbscript.regexp")
With regExp
    .Pattern = "\[([0-9]{2})]"
    .Global = True
End With
'How to do some calculations with $1?
' Removing regExp.Replace(Selection.Text, "[$1]")
For Each m In regExp.Execute(Selection.Text)
    Selection.Text = Left(Selection.Text, m.FirstIndex+1) _
        & Replace(m.Value, m.Value, CStr(CInt(m.Submatches(0)) + 10)) _
        & Mid(Selection.Text, m.FirstIndex + Len(m.Value))
Next m

End Sub

这里,

  • Selection.Text = Left(Selection.Text, m.FirstIndex+1) - 获取之前的内容
  • & Replace(m.Value, m.Value, CStr(CInt(m.Submatches(0)) + 10))- 添加10到捕获的号码
  • & Mid(Selection.Text, m.FirstIndex + Len(m.Value)) - 追加捕获后的内容

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何用ms word中的宏清除图片内容控件

来自分类Dev

如何在MS Word中嵌入计算

来自分类Dev

如何用MS Excel / Word和Java写东西?

来自分类Dev

如何禁用MS Word中的“最近的地方”?

来自分类Dev

如何在MS Word中禁用俄语的“智能”报价替换?

来自分类Dev

IF AND语句在MS WORD中

来自分类Dev

如何用python中的Word docx替换Latex Bold命令?

来自分类Dev

如何创建一个数字序列,在 MS Word 中显示每个数字中的两个?

来自分类Dev

如何用 MS Word 粗体格式化图形标题的一部分,而另一部分是常规格式?

来自分类Dev

如何将一个 Word 文档中的表格和图形链接到 MS Word 中的单独 Word 文档

来自分类Dev

如何在MS Word VBA中处理多字节符号

来自分类Dev

如何使用Python Docx更新MS Word中的字段

来自分类Dev

如何以编程方式在ms word中设置文本样式?

来自分类Dev

如何消除MS Word中脚注上方的较大空白?

来自分类Dev

如何在MS Word中自动调整表格的行高?

来自分类Dev

如何为MS Word 2013中的表格设置布局选项?

来自分类Dev

如何使用Perl在MS Word中检查超链接?

来自分类Dev

如何检查MS Word中特定字符串的冗余?

来自分类Dev

如何在MS Word中跨表创建多级列表?

来自分类Dev

如何调整MS Word文档中的多个图像大小?

来自分类Dev

如何修复MS Word 2007中的串行列?

来自分类Dev

如何在MS Word中制作连续纸?

来自分类Dev

如何将MS Word中的选定页面变为横向?

来自分类Dev

如何填补MS Word 2007中的巨大空间?

来自分类Dev

如何删除MS Word中绘制的水平线

来自分类Dev

如何使用表格自动在MS Word中编写合同?

来自分类Dev

如何在MS Word中快速插入“分数”

来自分类Dev

如何在MS Word中给文本加上空格?

来自分类Dev

如何在html / css中实现MS word标签功能?

Related 相关文章

  1. 1

    如何用ms word中的宏清除图片内容控件

  2. 2

    如何在MS Word中嵌入计算

  3. 3

    如何用MS Excel / Word和Java写东西?

  4. 4

    如何禁用MS Word中的“最近的地方”?

  5. 5

    如何在MS Word中禁用俄语的“智能”报价替换?

  6. 6

    IF AND语句在MS WORD中

  7. 7

    如何用python中的Word docx替换Latex Bold命令?

  8. 8

    如何创建一个数字序列,在 MS Word 中显示每个数字中的两个?

  9. 9

    如何用 MS Word 粗体格式化图形标题的一部分,而另一部分是常规格式?

  10. 10

    如何将一个 Word 文档中的表格和图形链接到 MS Word 中的单独 Word 文档

  11. 11

    如何在MS Word VBA中处理多字节符号

  12. 12

    如何使用Python Docx更新MS Word中的字段

  13. 13

    如何以编程方式在ms word中设置文本样式?

  14. 14

    如何消除MS Word中脚注上方的较大空白?

  15. 15

    如何在MS Word中自动调整表格的行高?

  16. 16

    如何为MS Word 2013中的表格设置布局选项?

  17. 17

    如何使用Perl在MS Word中检查超链接?

  18. 18

    如何检查MS Word中特定字符串的冗余?

  19. 19

    如何在MS Word中跨表创建多级列表?

  20. 20

    如何调整MS Word文档中的多个图像大小?

  21. 21

    如何修复MS Word 2007中的串行列?

  22. 22

    如何在MS Word中制作连续纸?

  23. 23

    如何将MS Word中的选定页面变为横向?

  24. 24

    如何填补MS Word 2007中的巨大空间?

  25. 25

    如何删除MS Word中绘制的水平线

  26. 26

    如何使用表格自动在MS Word中编写合同?

  27. 27

    如何在MS Word中快速插入“分数”

  28. 28

    如何在MS Word中给文本加上空格?

  29. 29

    如何在html / css中实现MS word标签功能?

热门标签

归档