Excel, makron och VBA
  • Facebook
  • LinkedIn
  • Technorati
  • del.icio.us
  • Google Bookmarks
  • Digg
  • MySpace
  • Slashdot
  • StumbleUpon
  • Print
  • PDF

Skapa länklista till alla arbetsblad i Excelboken

skapa-lankar-till-arbetsblad-i-excel

Om en Excelbok innehåller ett större antal blad (upp till 256 stycken) så kan det ibland vara praktiskt att skapa ett index, dvs en lista med länkar till samtliga arbetsblad.

Listan, som man t ex skapar på det vänstersta kalkylbladet, kommer att se ut som på bilden till vänster.

Koden, som loopar igenom alla arbetsblad,  innehåller även en programrad där du kan utesluta ett visst kalkylblad från att tas med i listan.

VBA-kod som skapar länkar till bokens kalkylblad

Utgångspunkten är en vanlig Excelbok med minst två arbetsblad. I denna arbetsbok skapar vi en modul i VBA-editorn, där nedanstående kod läggs in.

Sub Skapa_Lankar_Till_Alla_Kalkylblad()

Dim wrbBok As Workbook
Dim wrsAktivtBlad As Worksheet, wsBlad As Worksheet
Dim intRad, intKolumn As Integer

Set wrbBok = ActiveWorkbook
Set wrsAktivtBlad = ActiveSheet

'rad och kolumn där vi vill börja skriva ut länklistan
intRad = 4
intKolumn = 1

'slinga som går igenom alla kalkylblad
For Each wsBlad In wrbBok.Worksheets

'blad som vi vill utesluta från länklistan
If wsBlad.Name = "SheetAnteckningar" Then GoTo NastaBlad

'skapa länkarna
If wsBlad.Name <> wrsAktivtBlad.Name Then

wrsAktivtBlad.Hyperlinks.Add wrsAktivtBlad.Cells(intRad, _
intKolumn), "", SubAddress:="'" & wsBlad.Name & "'!A1", _
TextToDisplay:=wsBlad.Name

intRad = intRad + 1
End If

NastaBlad:
Next wsBlad

End Sub