VBA-Word Extend Revision to the whole word
VBA-Word Extend Revision to the whole word
我正在分析修订后的文件。它们都启用了更改跟踪,并包含许多修订。
这些文件需要对整个单词进行修改,而不是部分修改。由于此修订用于 QA,因此我不能将任何未修订的词标记为已修订。
所以我一定要把修改过字母的词变成完全修改过的词,不能碰别的词。
我想自动执行此操作。我想我可以做到这一点:
dim wrdRange as Range
For Each wrd In ThisDocument.Words
Set wrdRange = wrd
If wrdRange.Revisions.Count <> 0 Then
wrdRange.Text = wrdRange.Text
End If
Next wrd
它是半途而废,但每次遇到修改过的单词(部分或全部),它都会对其他单词进行修改(它们的修改计数为 1)。
所以问题是我该如何解决这个问题。
此外,我完全不确定这是执行任务的最佳方式。我感觉好像不是如果有人能提供另一个方向,我会很乐意遵循(我不喜欢我的方法——特别是遍历每个单词)。
我找到了解决办法。标记为修订的一个词正在将下一个标记为修订,因为它们包含尾随的空格。在这种情况下,我只是缩短了范围,现在它起作用了:
Dim wrdRange As Range
For Each wrd In ThisDocument.Words
Set wrdRange = wrd
If wrdRange.Revisions.Count <> 0 Then
If Mid(wrdRange.Text, Len(wrdRange.Text)) = " " Then
wrdRange.End = wrdRange.End - 1
End If
wrdRange.Text = wrdRange.Text
End If
Next wrd
我不确定这是否可靠。我感觉有些情况可能会像我一样在调整范围大小时崩溃。一旦我 运行 投入生产,我就会知道。我会fix/comment这里
我正在分析修订后的文件。它们都启用了更改跟踪,并包含许多修订。
这些文件需要对整个单词进行修改,而不是部分修改。由于此修订用于 QA,因此我不能将任何未修订的词标记为已修订。 所以我一定要把修改过字母的词变成完全修改过的词,不能碰别的词。
我想自动执行此操作。我想我可以做到这一点:
dim wrdRange as Range
For Each wrd In ThisDocument.Words
Set wrdRange = wrd
If wrdRange.Revisions.Count <> 0 Then
wrdRange.Text = wrdRange.Text
End If
Next wrd
它是半途而废,但每次遇到修改过的单词(部分或全部),它都会对其他单词进行修改(它们的修改计数为 1)。
所以问题是我该如何解决这个问题。
此外,我完全不确定这是执行任务的最佳方式。我感觉好像不是如果有人能提供另一个方向,我会很乐意遵循(我不喜欢我的方法——特别是遍历每个单词)。
我找到了解决办法。标记为修订的一个词正在将下一个标记为修订,因为它们包含尾随的空格。在这种情况下,我只是缩短了范围,现在它起作用了:
Dim wrdRange As Range
For Each wrd In ThisDocument.Words
Set wrdRange = wrd
If wrdRange.Revisions.Count <> 0 Then
If Mid(wrdRange.Text, Len(wrdRange.Text)) = " " Then
wrdRange.End = wrdRange.End - 1
End If
wrdRange.Text = wrdRange.Text
End If
Next wrd
我不确定这是否可靠。我感觉有些情况可能会像我一样在调整范围大小时崩溃。一旦我 运行 投入生产,我就会知道。我会fix/comment这里