Object variable or With block variable not set (Error 91)

匿名 (未验证) 提交于 2019-12-03 02:44:02

问题:

I have the following code:

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 

I am getting the "Object variable or With block variable not set (Error 91)" error on the line with hyperLinkText = hprlink.Range. When I debug I can see that hprlink.Range does have a value. Any thoughts what I'm doing wrong?

回答1:

As I wrote in my comment, the solution to your problem is to write the following:

Set hyperLinkText = hprlink.Range 

Set is needed because TextRange is a class, so hyperLinkText is an object; as such, if you want to assign it, you need to make it point to the actual object that you need.



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!