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]]] )
$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) |
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 |
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.
#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.")
#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.")