web-dev-qa-db-fra.com

Variable d'objet ou avec variable de bloc non définie (erreur 91)

J'ai le code suivant:

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

J'obtiens l'erreur "Variable d'objet ou avec variable de bloc non définie (erreur 91)" sur la ligne avec hyperLinkText = hprlink.Range. Quand je débogue, je peux voir que hprlink.Range a une valeur. Des pensées sur ce que je fais mal?

16
GBleaney

Comme je l'ai écrit dans mon commentaire, la solution à votre problème est d'écrire ce qui suit:

Set hyperLinkText = hprlink.Range

Set est nécessaire car TextRange est une classe, donc hyperLinkText est un objet; en tant que tel, si vous souhaitez l'attribuer, vous devez le faire pointer vers l'objet réel dont vous avez besoin.

16
Barranka