Word VBA - 用i-1

时间:2016-07-21 19:30:36

标签: regex vba replace ms-word

我想搜索整数的选择并按每个值增加一些值,例如1.例如,在美国专利No.6,293,874的以下文本中,我想要进行替换,其中双括号表示删除,斜体表示插入:

<>根据本发明,提供了一种娱乐装置,其包括用户操作和控制的装置,用于对使用者的臀部进行重复性打击,包括多个旋转臂轴承用于自动划动用户的臀部B的灵活扩展。[附图示出]用于自我划动用户U的娱乐设备[[10]] 11 。如[附图所示]自动划水设备[[10]] 11 包括一个显示平台[[12]] 13 具有中空内部并具有第一端[[14]] 15 部分和第二端[[16]] 17 部分。平台[[12]] * 13 *由足以支撑站在平台上的至少一些人(例如用户和观察者)的重量的材料构成。在一个实施例中,平台[[12]] 13 包括至少两个大致相等大小的子单元,这些子单元可在中间部分[[20]] 21 连接以便折叠在安装在其上的任何直立柱之后将它们分开。第一端[[14]] 15 部分和第二端[[16]] 17 部分包括中空平台[[12]] 内的存储隔间13 用于存储可连接到平台[[12]] 13 的反汇编组件。第一端[[14]] 15 通过多个铰链在中间部分铰链20处连接到第二端[[16]] 17 [[22] ]] 23 。一旦直立柱和附件被拆卸,拆卸和存放,平台[[12]] 13 可折叠并可安全存放或移动到下一个位置,以便重新组装,显示和使用。划桨#&34;

我知道如何迭代匹配集合中的匹配,但仅限于整个段落,即。

For Each para In Selection.Paragraphs 
txt = para.Range.text 
offset = 0
'any match? 
If re.Test(txt) Then 
'get all matches 
Set allMatches = re.Execute(txt) 
For Each m In allMatches 

    num = m.Value + 1 
    Set rng = para.Range 
    rng.Collapse wdCollapseStart 
    rng.MoveStart wdCharacter, m.FirstIndex + offset 
    rng.MoveEnd wdCharacter, m.length 
    rng.text = re.Replace(rng.text, num) 'account for added digits:
    offset = offset + Len(CStr(num)) - Len(m.Value) 

Next m 
End If 
Next para

我可以(A)修改前面的代码来仅搜索选择而不是它所触及的段落(完整地),(B)以某种方式使用Selection.Find.Execute:=wdReplaceAll并确保它赢得了#39 ; t替换文档中的所有内容?*(*我注意到如果变量是针对Selection对象定义的并且在.text的{​​{1}}字段中使用,则Word将替换文档中的所有实例,即使使用Selection.Find。请参阅Word VBA replace text appearing in selection only with uppercase

0 个答案:

没有答案