Funktionreferenz


_Excel_RangeLinkAddRemove

Beschreibung anzeigen in

Fügt einen Hyperlink zu einem angegebenen Bereich oder entfernt ihn

#include <Excel.au3>
_Excel_RangeLinkAddRemove ( $oWorkbook, $vWorksheet, $vRange, $sAddress [, $sSubAddress = Default [, $sScreenTip = Default [, $sTextToDisplay = Default]]] )

Parameter

$oWorkbook Excel Arbeitsbuch-Objekt
$vWorksheet Name, Index des Arbeitsblattes oder Arbeitsblatt-Objekt das benutzt werden soll. Wenn das Schlüsselwort Default gesetzt wird, wird das aktive Arbeitsblatt genutzt
$vRange Entweder ein Bereichs-Objekt oder ein A1 Bereich, auf den ein Hyperlink gesetzt werden soll
$sAddress Die Adresse für den angegebenen Link. Die Adresse kann eine E-Mailadresse sein, eine Internetadresse oder ein Dateiname. "" entfernt einen existierenden Hyperlink
$sSubAddress [optional] Der Name des Ortes in der Zieldatei, wie ein Lesezeichen, ein benannter Bereich oder eine Seitennummer (Standard = Schlüsselwort Default = None)
$sScreenTip [optional] Der Text der als Bildschirmtext (ScreenTip) erscheint, wenn der Mauszeiger auf dem angegebenen Hyperlink positioniert ist (Standard = Schlüsselwort Default = Nutzt den Wert von $sAddress)
$sTextToDisplay [optional] Der Text der für den Hyperlink angezeigt wird (Standard = Schlüsselwort Default = None)

Rückgabewert

Erfolg: ein Hyperlink-Objekt, wenn ein Link gesetzt wurde, oder 1, wenn er entfernt wurde.
Fehler: 0 und setzt @error.
@error: 1 - $oWorkbook ist kein Objekt oder kein Arbeitsbuch-Objekt
2 - $vWorksheet Name oder Index sind falsch oder $vWorksheet ist kein Arbeitsblatt-Objekt. @extended ist auf den COM Fehlercode gesetzt
3 - $vRange ist falsch. @extended ist auf den COM Fehlercode gesetzt
4 - Ein Fehler trat beim Hinzufügen/Löschen des Hyperlinks auf. @extended ist auf den COM Fehlercode gesetzt

Bemerkungen

Sieht aus als ob Excel den $sTextToDisplay nur in die obere, linke Zelle des Bereichs (wenn die Zelle leer ist) schreibt. Die verbleibenden Zellen des Bereichs bleiben unberührt.

Beispiel

Beispiel 1

#include <Excel.au3>
#include <MsgBoxConstants.au3>

; Anwendungsobjekt erstellen und eine Beispielarbeitsmappe öffnen
Local $oExcel = _Excel_Open()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeLinkAddRemove Example", "Fehler beim Erstellen des Excel-Anwendungsobjekts." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookOpen($oExcel, @ScriptDir & "\Extras\_Excel1.xls")
If @error Then
    MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeLinkAddRemove Example", "Fehler beim Öffnen der Arbeitsmappe '" & @ScriptDir & "\Extras\_Excel1.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf

; Einen Link zu den Zellen A1:C1 hinzufügen
_Excel_RangeLinkAddRemove($oWorkbook, $oWorkbook.Activesheet, "A1:C1", "http://www.autoitscript.com", Default, "AutoIt Homepage")
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeLinkAddRemove Example 1", "Fehler beim Setzen eines Hyperlinks." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeLinkAddRemove Example 1", "Links zu den Zellen 'A1:C3' gesetzt.")

; Entfernen der Links aus den Zellen A1:C1
_Excel_RangeLinkAddRemove($oWorkbook, $oWorkbook.Activesheet, "A1:C1", "")
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeLinkAddRemove Example 2", "Fehler beim Setzen eines Hyperlinks." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeLinkAddRemove Example 2", "Links aus den Zellen 'A1:C3' entfernt.")

Beispiel 2

#include <Excel.au3>
#include <MsgBoxConstants.au3>

; Anwendungsobjekt erstellen und eine Beispielarbeitsmappe öffnen
Local $oExcel = _Excel_Open()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeLinkAddRemove Example", "Fehler beim Erstellen des Excel-Anwendungsobjekts." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookOpen($oExcel, @ScriptDir & "\Extras\_Excel1.xls")
If @error Then
    MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeLinkAddRemove Example", "Fehler beim Öffnen der Arbeitsmappe '" & @ScriptDir & "\Extras\_Excel1.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf

; Einfügen eines Indexblattes mit Links zu allen anderen Blättern.
; Behandelt Blattnamen mit Leerzeichen korrekt.
Local $oSheet = _Excel_SheetAdd($oWorkbook, 1, True, 1, "Index")
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeLinkAddRemove Example 3", "Fehler beim Hinzufügen eines Blattes." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
$oSheet.Range("A1").Value = "Index"
Local $iRow = 2
For $iSheet = 2 To $oWorkbook.Sheets.Count
    $oSheet.Cells($iRow, 1).Value = $iRow - 1
    $oSheet.Cells($iRow, 2).Value = $oWorkbook.Worksheets($iRow).Name
    _Excel_RangeLinkAddRemove($oWorkbook, $oSheet, $oSheet.Cells($iRow, 2), $oWorkbook.Fullname, "'" & $oSheet.Cells($iRow, 2).Value & "'!A1")
    $iRow = $iRow + 1
Next
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeLinkAddRemove Example 3", "Indexblatt als Blatt 1 eingefügt.")