У меня есть некоторый код, который ищет в документе какой-то уникальный текст «(перекрестная ссылка на таблицу 2.1)», а затем заменяет этот текст перекрестной ссылкой на таблицу 2.1.Код работает хорошо, за исключением того, что в одном разделе документа вставка перекрестной ссылки фактически удаляет пробел "" перед перекрестной ссылкой.Например, исходный текст, читающий «Refer (таблица перекрестных ссылок 2.1)», становится «referTable2.1», когда он должен читать «см. Table2.1».Это происходит только в одном месте в документе, и, похоже, нет никаких причин, по которым это происходит (т.е. в моем коде или шаблоне слова нет лишних «», которых не должно быть).
Public Sub Master()
Call ReplaceTextWithCrossReferenceToTable(wrdDoc, _
"(cross reference Table 2.1)", "Table 2.1", wrdApp)
End Sub
Sub ReplaceTextWithCrossReferenceToTable(wrdDoc As Word.Document, _
ReferenceText As String, ReferenceSource As String, _
wrdApp As Word.Application)
Dim wrdTables As Variant, intTableNames As Integer, j As Integer
Dim k As Integer, RefValue As Integer
wrdTables = wrdDoc.GetCrossReferenceItems("Table")
For intTableNames = 1 To UBound(wrdTables)
If InStr(wrdTables(intTableNames), ReferenceSource) Then
RefValue = intTableNames
End If
Next i
If RefValue = 0 Then Exit Sub
With wrdDoc.Content.Find
.Text = ReferenceText
.Format = False
.Wrap = 0
Do While .Execute
k = k + 1
Loop
End With
For j = 1 To k
With wrdApp.Selection
.Find.Text = ReferenceText
.Find.Wrap = 1 'wdFindContinue
.Find.Execute FindText:=ReferenceText
.Delete
.InsertCrossReference "Table", wdOnlyLabelAndNumber, RefValue, True
End With
Next j
End Sub