VBA Get Sheet Name / Rename Sheet

Denna handledning kommer att täcka interaktion med bladnamn i VBA.

Hämta bladets namn

Arknamn lagras i namn egendom till Ark eller Arbetsblad objekt. Arknamnet är "flik" -namnet som syns längst ner i Excel:

Skaffa ActiveSheet -namn

Detta visar ActiveSheet -namnet i en meddelanderuta:

1 MsgBox ActiveSheet.Name

Få bladets namn efter indexnummer

Detta visar det första kalkylbladets namn i en meddelanderuta:

1 MsgBox Sheets (1) .Name

Detta visar namnet på det sista kalkylbladet i arbetsboken:

1 MsgBox Sheets (Sheets.Count) .Name

Hämta bladnamn efter kodnamn

I VBA Editor finns det ett alternativ för att ändra "kodnamn" för ett blad. Kodnamnet är inte synligt för Excel -användaren och kan bara ses i VBA Editor:

I VBA, när du arbetar med Sheets, kan du referera till det vanliga fliknamnet:

1 Kalkylark ("Fliknamn"). Aktivera

eller VBA -kodnamnet:

1 CodeName.Activate

Det är önskvärt att referera till kodnamnet om bladflikens namn ändras. Om du tillåter Excel -användare åtkomst till att ändra bladnamn, bör du referera till kodnamnet i din VBA -kod så att en felflik för bladflikar inte orsakar ett fel. Bladkodnamn diskuteras mer detaljerat här.

Gör följande för att få bladnamnet med VBA -kodnamnet:

1 MsgBox CodeName.Name

Byt namn på blad

Du kan byta namn på Kalkylark genom att justera namn egendom till Ark eller Arbetsblad objekt.

Byt namn på ActiveSheet

1 ActiveSheet.Name = "Nytt namn"

Byt namn på blad efter namn

1 Kalkylark ("OldSheet"). Namn = "Nytt namn"

Byt namn på blad efter bladindexnummer

Här använder vi 1 för att byta namn på det första bladet i arbetsboken.

1 Ark (1) .Name = "Nytt namn"

Byt namn på blad efter kodnamn

Denna kod kommer att byta namn på ett blad med dess VBA -kodnamn (diskuteras ovan):

1 Component.Name = "Nytt namn"

Kontrollera om bladnamnet finns

Vi skapade en funktion för att testa om ett blad med ett visst namn redan finns.

123456789101112 'Testa om ett område finns på ett ark.'Lämna intervallet tomt för att testa om det finns ett ark'Ingångar:'WhatSheet - Bladets strängnamn (ex "Sheet1")'WhatRange (Valfritt, Standard = "A1") - Strängnamn för intervall (ex "A1")Function RangeExists (WhatSheet As String, Valfritt ByVal WhatRange As String = "A1") Som BooleanDim test As RangeVid fel Återuppta nästaAnge test = ActiveWorkbook.Sheets (WhatSheet) .Range (WhatRange)RangeExists = Err.Number = 0Vid fel GoTo 0Avsluta funktion

Funktionen returnerar SANT om arket finns, eller FALSKT om det inte gör det.

Använd funktionen så här:

123 Sub Test_SheetExists ()MsgBox RangeExists ("setup")Avsluta Sub

Kopiera blad och byt namn

Detta exempel är från vår artikel om att kopiera ark.

Efter att du har kopierat och klistrat in ett ark blir det nyskapade arket ActiveSheet. Så för att byta namn på ett kopierat blad, använd helt enkelt ActiveSheet.Name:

12345678 Sub CopySheetRename2 ()Sheets ("Sheet1"). Kopiera After: = Sheets (Sheets.Count)Vid fel Återuppta nästaActiveSheet.Name = "LastSheet"Vid fel GoTo 0Avsluta Sub

Obs! Vi har lagt till felhantering för att undvika fel om bladnamnet redan finns.

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave