VBA-hyperlänkar

Hyperlänkar är URL kopplade till ett värde som visas när vi håller muspekaren över det och när vi klickar på det öppnas URL: en, i VBA har vi en inbyggd egenskap för att skapa hyperlänkar i VBA och för att använda den här egenskapen använder vi Lägg till metod tillsammans med hyperlänkuttrycket för att infoga en hyperlänk i en cell.

Hyperlänkar i Excel VBA

Även om vi har Page Up & Page Down snabbtangent i Excel för att flytta mellan ett ark till ett annat. Men det blir komplext när vi måste flytta mellan 10 till fler kalkylblad. Det är här skönheten i "Hyperlänkar i Excel" kommer in i bilden. Hyperlänken är en förutbestämd URL som tar dig till respektive cell eller kalkylblad enligt tilldelning.

Vi vet alla hur man skapar hyperlänkar i kalkylbladet för att snabbt flytta från ett ark till ett annat ark och du kan också gå till ett annat ark. Men i dagens artikel kommer vi att visa dig hur du skapar hyperlänkar med hjälp av VBA-kodning.

Formel för VBA-hyperlänkar

Låt oss titta på formeln för hyperlänkar i Excel VBA.

  • Ankare: I vilken cell du vill skapa en hyperlänk.
  • Adress: Vad är webbadressen till hyperlänken som ska navigeras?
  • [Underadress]: Vad är sidan för sidan?
  • [Skärmtips]: Vad är värdet som ska visas när du placerar en muspekare på hyperlänkens namn eller cell?
  • [Text att visa]: Vad är testet som ska visas i cellen? Till exempel kalkylbladets namn.

Hur skapar man hyperlänkar i Excel VBA?

Du kan ladda ner den här VBA-hyperlänkmallen här - VBA-hyperlänkmallen

Antag att du vill skapa en VBA-hyperlänk till arket med namnet "Main Sheet" från det andra arket "Exempel 1".

I kalkylbladet "Exempel 1" och i cellen A1 ska jag skapa hyperlänken med hjälp av Kod i VBA.

Steg 1: Välj först cellen A1 i kalkylbladet Exempel 1.

Koda:

 Sub Hyperlink_Example1 () Kalkylblad ("Exempel 1"). Välj intervall ("A1"). Välj End Sub 

Steg 2: Nu med hjälp av Active Cell-objekt öppna hyperlänkar. lägg till metod.

Koda:

 Sub Hyperlink_Example1 () Arbetsblad ("Exempel 1"). Välj intervall ("A1"). Välj ActiveCell.Hyperlinks.Add (End Sub 

Steg 3: Det första  argumentet är "Anchor" dvs i vilken cell vi skulle länka för att skapa VBA-hyperlänken. I detta fall cell A1 och eftersom vi redan har valt cell A1 för att nämna det som "Selection".

Koda:

 Sub Hyperlink_Example1 () Kalkylblad ("Exempel 1"). Välj intervall ("A1"). Välj ActiveCell. Hyperlänkar. Lägg till (markering, avsluta sub 

Steg 4: Vi skapar ingen adress här, så ignorera adress från och med nu.

Koda:

 Sub Hyperlink_Example1 () Kalkylblad ("Exempel 1"). Välj intervall ("A1"). Välj ActiveCell.Hyperlinks.Add Anchor: = Selection, Address: = "", End Sub 

Steg 5: Nästa är underadress. Här måste vi nämna vilket ark vi hänvisar till och den första cellen i det arket.

Koda:

 Sub Hyperlink_Example1 () Kalkylblad ("Exempel 1"). Välj intervall ("A1"). Välj ActiveCell.Hyperlinks.Add Anchor: = Selection, Address: = "", SubAddress: = "'Main Sheet'! A1", End Sub 

Jag har nämnt bladnamnet som "Main Sheet" och i det arket är celladressen "A1".

Steg 6: Ignorera också skärmtips. För att texten ska visas ska du nämna bladets namn.

Koda:

 Sub Hyperlink_Example1 () Arbetsblad ("Exempel 1"). Välj intervall ("A1"). Välj ActiveCell. Hyperlänkar. Lägg till ankare: = markering, adress: = "", underadress: = "" huvudark "! : = "Main Sheet" End Sub 

Okej, kör den här koden med F5-tangenten eller manuellt, då skapas en hyperlänk i cellen A1 i arket "Exempel 1".

När du klickar på Hyperlink "Main Sheet" omdirigeras det till huvudarket.

Hyperlänkar av flera ark med öglor

Vi har sett skapa en VBA-hyperlänk för ett ark. När vi har många ark är det svårt att skapa en VBA-hyperlänk för varje ark med samma kodrad för varje ark.

Antag att du har 11 kalkylblad som visas i bilden nedan.

Du vill skapa en hyperlänk för varje ark i indexbladet med VBA-kod.

Steg 1: Definiera variabeln som ett kalkylblad.

Koda:

 Sub Create_Hyperlink () Dim Ws As Worksheet End Sub 

Steg 2: Det första är att välja kalkylbladet Index och välja cellen A1.

Koda:

 Sub Create_Hyperlink () Dim Ws As Worksheet Worksheets ("Index"). Välj intervall ("A1"). Välj End Sub 

Steg 3: Öppna nu för varje slinga i VBA.

Koda:

 Sub Create_Hyperlink() Dim Ws As Worksheet Worksheets("Index").Select Range("A1").Select For Each Ws In ActiveWorkbook.Worksheets Next Ws End Sub 

Step 4: Since we have already selected the cell A1 it is now an active cell. So start the hyperlink with the active cell.

Code:

 Sub Create_Hyperlink() Dim Ws As Worksheet Worksheets("Index").Select Range("A1").Select For Each Ws In ActiveWorkbook.Worksheets ActiveCell.Hyperlinks.Add( Next Ws End Sub 

Step 5: Anchor is a hyperlink cell. So it is the active cell.

Code:

 Sub Create_Hyperlink() Dim Ws As Worksheet Worksheets("Index").Select Range("A1").Select For Each Ws In ActiveWorkbook.Worksheets ActiveCell.Hyperlinks.Add Anchor:=ActiveCell, Next Ws End Sub 

Step 6: Address is nothing mention it as “”.

Code:

 Sub Create_Hyperlink() Dim Ws As Worksheet Worksheets("Index").Select Range("A1").Select For Each Ws In ActiveWorkbook.Worksheets ActiveCell.Hyperlinks.Add Anchor:=ActiveCell,Address:="", Next Ws End Sub 

Step 7: Subaddress is when we loop through the sheet it should be the sheet name. To refer the sheet name we need a single quote “” with sheet name and “! Cell Address” and close the sheet name with a single quote “”.

Code:

 Sub Create_Hyperlink() Dim Ws As Worksheet Worksheets("Index").Select Range("A1").Select For Each Ws In ActiveWorkbook.Worksheets ActiveCell.Hyperlinks.Add Anchor:=ActiveCell,Address:="",SubAddress:=""& Ws.Name&"!A1"&"", Next Ws End Sub 

Step 8: Ignore Screen tip and for Text to display you can enter the worksheet name.

Code:

 Sub Create_Hyperlink() Dim Ws As Worksheet Worksheets("Index").Select Range("A1").Select For Each Ws In ActiveWorkbook.Worksheets ActiveCell.Hyperlinks.Add Anchor:=ActiveCell, Address:="", SubAddress:="" & Ws.Name & "!A1" & "", ScreenTip:="", TextToDisplay:=Ws.Name Next Ws End Sub 

Step 9: To store the hyperlink of each sheet in a different cell every time hyperlink created for one sheet we need to move down one cell from the active cell.

Code:

 Sub Create_Hyperlink() Dim Ws As Worksheet Worksheets("Index").Select Range("A1").Select For Each Ws In ActiveWorkbook.Worksheets ActiveCell.Hyperlinks.Add Anchor:=ActiveCell, Address:="", SubAddress:="" & Ws.Name & "!A1" & "", ScreenTip:="", TextToDisplay:=Ws.Name ActiveCell.Offset(1, 0).Select Next Ws End Sub 

This will create a hyperlink of all the sheets in the Index sheet. This code is dynamic, whenever there is any addition or deletion of sheets we just need to run this code to have an updated hyperlink.