Есть ли прямой способ, которым мы можем разделить ревизию слова на набор ревизий?
Если не может, В этом случае ниже, Это относится к моя другая проблема .
В документе есть несколько абзацев, каждый из которых имеет свой собственный примененный стиль.Когда возьмите вставленную ревизию в приведенном выше примере, я хочу разделить ревизию на вставленные конечные метки абзаца, так как тогда она будет разделена на три ревизии.И решение должно быть глобальным решением, которое может применяться для любой вставки, независимо от того, что делает пользователь.Например:
- Вставка может содержать любое количество конечных меток абзаца внутри.
- Вставка может начинаться с конечного знака абзаца
- К абзацам применяются отдельные стили абзаца, и мы должны оставить их без изменений.
Это код, который я изменилЯ попытался отделить первый абзац и другие абзацы.Но я застрял в логической части.
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
Может кто-нибудь, пожалуйста, помогите мне с этим.
Спасибо.