Переменная объекта или переменная блока не установлена (Ошибка 91)
У меня есть следующий код:
Sub AddSources()
Dim pubPage As Page
Dim pubShape As Shape
Dim hprlink As Hyperlink
Dim origAddress() As String
Dim exportFileName As String
exportFileName = "TestResume"
Dim linkSource As String
linkSource = "TestSource2"
Dim hyperLinkText As TextRange
For Each pubPage In ActiveDocument.Pages
For Each pubShape In pubPage.Shapes
If pubShape.Type = pbTextFrame Then
For Each hprlink In pubShape.TextFrame.TextRange.Hyperlinks
If InStr(hprlink.Address, "http://bleaney.ca") > 0 Then
hyperLinkText = hprlink.Range
origAddress = Split(hprlink.Address, "?source=")
hprlink.Address = origAddress(0) + "?source=" + linkSource
hprlink.Range = hyperLinkText
End If
Next hprlink
End If
Next pubShape
Next pubPage
ThisDocument.ExportAsFixedFormat pbFixedFormatTypePDF, "C:\" + exportFileName + ".pdf"
End Sub
Я получаю сообщение об ошибке "Переменная объекта или переменная блока не установлена (ошибка 91)" в строке с hyperLinkText = hprlink.Range
, Когда я отлаживаю, я вижу, что hprlink.Range
действительно имеет значение. Есть мысли, что я делаю не так?
1 ответ
Решение
Как я уже писал в своем комментарии, решение вашей проблемы - написать следующее:
Set hyperLinkText = hprlink.Range
Set
необходимо, потому что TextRange
это класс, так hyperLinkText
это объект; как таковой, если вы хотите назначить его, вам нужно, чтобы он указывал на фактический объект, который вам нужен.