Problem mit Hyperlink setzen

  • Excel

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Mono.

    Problem mit Hyperlink setzen

    Hi Leute,

    ich möchte einen Hyperlink von einer Zelle eines Sheets auf ein anderes Sheet in der gleichen Mappe setzen.

    Ich hab hierzu diesen Code (Ausschnitt von viel mehr Code!):

    Visual Basic-Quellcode

    1. Public Function XY (ByVal reqDict As Dictionary, ByVal traceFlag As Boolean) As Boolean
    2. Dim wb As Workbook
    3. Dim wsNew As Worksheet
    4. Set wb = ActiveWorkbook
    5. Set wsNew = wb.Sheets("Req")
    6. Dim tmpRange As Range
    7. Dim curReq as ClsReq
    8. If traceFlag = True Then
    9. For i = 0 To reqDict.Count - 1
    10. Set curReq = reqDict.Items(i)
    11. With curReq
    12. Set tmpRange = .getTest_id()
    13. wsNew.Cells(i + 1, 6).value = tmpRange.value
    14. wsNew.Hyperlinks.Add _
    15. Anchor:=wsNew.Cells(i+1,6).value, _
    16. Address="", _
    17. SubAddress:="'" & tmpRange.Name & "'!" & tmpRange.Cells(1,1).Address, _
    18. ScreenTip:="Gehe zu & tmpRange.Name", _
    19. TextToDisplay:=tmpRange.Name
    20. End With
    21. Next i
    22. End If


    Edit: .getTest_Id() liefert eine Range auf das Klassenobjekt curReq zurück.

    Wenn ich nun den gesamten Code ausführe, kommt die Fehlermeldung "Laufzeitfehler 424: Objekt erforderlich".

    Kann mir jemand helfen?

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „bandchef“ ()

    In welcher Zeile kommt der Feher?
    Verwende die Properties ohne Klammern.
    Zeige nochmla die klasse bitte wenn der Fehler
    hier auftaucht:

    Visual Basic-Quellcode

    1. Set tmpRange = .getTest_id()
    2. wsNew.Cells(i + 1, 6).value = tmpRange.value
    Das ist meine Signatur und sie wird wunderbar sein!
    Nein, der Fehler taucht direkt hier auf:

    Visual Basic-Quellcode

    1. wsNew.Hyperlinks.Add _
    2. wsNew.Cells(i + 1, 6).value, "", _
    3. wsNew.Cells(i + 1, 6).value & "!" & wsNew.Cells(i + 1, 6).Address, , _
    4. wsNew.Cells(i + 1, 6).value


    Ich hab hier jetzt tmpRange nach wsNew.Cells(i + 1, 6).value umbenannt, weil ich mit

    Visual Basic-Quellcode

    1. Set tmpRange = .getTest_id()
    2. wsNew.Cells(i + 1, 6).value = tmpRange.value


    den Namen des Sheets auf das verlinkt werden soll schreibe.

    Edit: Überflüssige Variablen in der Hyperlink-Anweisung hab ich jetzt weggelassen.
    Der erste Parameter bei Hyperlinks.add muss ein Range objekt sein. Du übergibst ein Value welches ein Variant ist und den Inhalt einer range beschreibt. Du musst aber direkt die Range übergeben.

    LG
    Das ist meine Signatur und sie wird wunderbar sein!