Steve verfügt über eine Reihe von Zellen (A1: A10), die Website-Adressen enthalten, z. B. www.example.com. Er fragt sich, ob es möglich ist, innerhalb eines Makros jede dieser Adressen in einem Browser auf einmal in separaten Browser-Registerkarten zu öffnen.

Es gibt verschiedene Möglichkeiten, wie Sie sich dieser Aufgabe nähern können. Welche Sie auswählen, hängt weitgehend von der Art der Daten in Ihrem Arbeitsblatt ab. Wenn die Zellen aktive Hyperlinks enthalten (wenn Sie darauf klicken, wird die Adresse in einem Browser geöffnet), können Sie ein recht einfaches Makro verwenden:

Sub FollowHyperlinks1()

Dim MyRange As Range     Dim hl As Hyperlink

On Error Resume Next     Set MyRange = Range("A1:A10")

For Each hl In MyRange.Hyperlinks         hl.Follow     Next hl End Sub

Das Makro betrachtet einfach alle Hyperlinks im Bereich von A1: A10 und verwendet die Follow-Methode, um sie in Ihrem Standardbrowser zu öffnen.

Aufgrund der Art und Weise, wie Ihr Betriebssystem Informationen von Excel in Ihren Browser überträgt, empfiehlt es sich, den Browser zu öffnen, bevor Sie das Makro ausführen. Der Grund dafür ist, dass wir beim Testen festgestellt haben, dass möglicherweise zwei Instanzen des Browsers geöffnet sind, wobei einige Adressen in einer Instanz und einige in der anderen geöffnet sind.

Dies tritt anscheinend aufgrund der Verzögerung beim Öffnen der ersten Instanz des Browsers auf. Wenn der Browser geöffnet ist, bevor das Makro ausgeführt wird, gibt es keine Verzögerung und jede Adresse wird auf einer anderen Registerkarte derselben Browserinstanz geöffnet.

Wenn die Adressen in Ihrem Arbeitsblatt möglicherweise keine aktiven Hyperlinks sind, können Sie sich nicht darauf verlassen, dass Sie die Hyperlinks-Sammlung für den Bereich verwenden.

Stattdessen müssen Sie den Wert jeder Zelle im Bereich betrachten:

Sub FollowHyperlinks2()

Dim MyRange As Range     Dim cell As Range     Dim sTemp As String

On Error Resume Next     Set MyRange = Range("A1:A10")

For Each cell In MyRange         sTemp = cell.Value         ThisWorkbook.FollowHyperlink _           Address:=sTemp     Next cell End Sub

Dieser Ansatz verwendet die FollowHyperlink-Methode, um die Adresse in die Variable sTemp zu laden. In diesem Fall spielt es keine Rolle, ob der Inhalt der Zellen aktive Hyperlinks sind oder nicht. Der Code versucht immer noch, sie in einem Browser zu öffnen.

Wenn Ihre Daten möglicherweise keine vollständig qualifizierten Adressen enthalten, müssen Sie dennoch einen anderen Ansatz verwenden. Zum Beispiel erwähnte Steve, dass das Arbeitsblatt Adressen wie www.example.com enthält, aber eine solche Adresse funktioniert mit den Beispielen bisher nicht. Wenn zu Beginn Ihrer Daten http: // fehlt (oder eine Variante wie https: //), öffnet der Code die Adresse nicht im Browser. In Ihren Daten hat diese Besonderheit, dann ist eine geringfügige Änderung am Makro angebracht:

Sub FollowHyperlinks3()

Dim MyRange As Range     Dim cell As Range     Dim sTemp As String

On Error Resume Next     Set MyRange = Range("A1:A10")

For Each cell In MyRange         sTemp = cell.Value         If InStr(sTemp, "://") = 0 Then             sTemp = "http://" & sTemp         End If         ThisWorkbook.FollowHyperlink _           Address:=sTemp     Next cell End Sub

Beachten Sie, dass in diesem Beispiel der Inhalt von sTemp untersucht wird, um festzustellen, ob die Zeichen „: //“ enthalten sind. Wenn nicht, wird das Präfix http: // zum Zelleninhalt hinzugefügt und Excel versucht, die geänderte Adresse mithilfe der FollowHyperlink-Methode zu öffnen.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (11413) gilt für Microsoft Excel 97, 2000, 2002 und 2003.

Eine Version dieses Tippes für die Multifunktionsleistenoberfläche von Excel (Excel 2007 und höher) finden Sie hier: