我有一份文件,里面有几个问题。现在,文档中有几个新增内容。我现在必须坐下来改变每个问题编号。此外,还有一定的跳过模式。
例如: "If 2 coded in Q5 then, go and ask Q6 else skip to Q10 "
现在,如果我改变了问题的编号。我变得非常难以映射和更改路由问题。
手动,需要太多时间。如果有任何方法通过VBA或任何方法来尽量减少所需的手动工作,请帮助我。
答案 0 :(得分:0)
我猜你的模式是Q1,Q2,...... Qn代表问题1,问题2等。
此外,您已添加问题1,即Q1。所以前Q1应该变成Q2,Q2到Q3,...... Qn到Qn + 1.
如何插入Q1并将所有其他Q增加1?概念如下。
1)半自动创建一个findArray和replaceArray。
如何创建findArray:http://textmechanic.com/generate-list-numbers/。 如果您有100个问题,请生成1到100之间的数字,前缀数字为:“Q”;加入:“,”。
2)批量更换阵列(“Q1”,“Q2”,“Q3”,......“Q100”) for array (“@@@ Q1 @@@“,”@@@ Q2 @@@“,”@@@ Q3 @@@“,...”@@@ Q100 @@@“)。循环遍历元素并为replaceArray [i]更改每个findArray [i]。 [改编附件中的代码]
3)在文字中插入新的Q1。
4)批量更换阵列(“@@@ Q1 @@@”,“@@@ Q2 @@@”,“@@@ Q3 @@@”,......“ @@@ Q100 @@@“) for array (”Q2“,”Q3“,”Q4“,......”Q101“)。使用http://textmechanic.com/generate-list-numbers/创建替换数组。循环遍历元素并为replaceArray [i]更改每个findArray [i]。 [改编附件中的代码]
就是这样!
这意味着您应该知道如何使用两个数组更改元素。以下是使用三个元素的代码。
<强>附件强>
Option Explicit
Sub replaceArrayForArray()
'
'to create array use prefix\suffix and replacing tool http://textmechanic.com/
'
'
findArray = Array("Q1", " Q2", " Q3")
replArray = Array("@@@Q1@@@", "@@@Q2@@@", "@@@Q3@@@@")
For i = 0 To UBound(findArray)
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = findArray(i)
.Replacement.Text = replArray(i)
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = True
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute replace:=wdReplaceAll
Next i
End Sub
PS:我使用@@@因为它很少见。
PPS:回答类似的问题: MS Word Macro to increment all numbers in word document