【发布时间】:2019-02-07 00:03:56
【问题描述】:
有没有一种直接的方法可以将单词修订拆分为一组修订?
如果不能,在下面这种情况下, 这与my other issue 有关。
文档有几个段落,每个段落都有自己的应用风格。 当在上面的例子中插入修订时,我想用 inserted 段落结束标记分隔修订,因为它会分成三个修订。并且该解决方案应该是一个全局解决方案,无论用户做什么都可以申请任何插入。 例如:
- 插入可以包含任意数量的段落结束标记。
- 插入可以以段落结尾标记开始
- 段落应用了单独的段落样式,我们需要保持它们不变。
这是我修改的代码,我尝试将第一段和其他段落分开。但是,我一直停留在逻辑部分。
Private Function RemoveParagraphEndingsFromRevisions(ByRef WordRange As Word.Range)
On Error GoTo ErrorHandler
Dim fTrackRevisions As Boolean
Dim objRevision As Word.Revision
Dim objRange1, objRange2 As Word.Range
Dim sPara, firstParaStyle As String
Dim stylesCollection As VBA.Collection
Dim count As Long
Set stylesCollection = New VBA.Collection
sPara = vbCr
With WordRange.Document
fTrackRevisions = .TrackRevisions
.TrackRevisions = False
End With
For Each objRevision In WordRange.Document.Revisions
'AllowTrackChangesForInsertion method checks whether the revision contains a text change
If AllowTrackChangesForInsertion(objRevision) = True Then
'If there are paragraph ending marks within the revision
If InStr(objRevision.Range.Text, sPara) > 0 Then
Set objRange1 = objRevision.Range.Duplicate
Set objRange2 = objRange1.Duplicate
firstParaStyle = objRange2.Paragraphs(1).Style
If (objRange1.Paragraphs.count > 1) Then
count = 2
Do While (count < objRange1.Paragraphs.count + 1)
stylesCollection.Add objRange1.Paragraphs(count).Style
count = count + 1
Loop
.........
Else
'When there's no inserted text after inserted end para mark
End If
End If
End If
Next
ErrorHandler:
WordRange.Document.TrackRevisions = fTrackRevisions
Set objRevision = Nothing
Set objRange1 = Nothing
Set objRange2 = Nothing
Set stylesCollection = Nothing
Select Case Err.Number
Case 0
Case Else
ShowUnexpectedError ErrorSource:="RemoveParasFromRevisions" & vbCr & Err.Source
End Select
End Function
谁能帮我解决这个问题。
谢谢。
【问题讨论】: