VBA Pobierz nazwę arkusza / Zmień nazwę arkusza

Ten samouczek obejmie interakcję z nazwami arkuszy w VBA.

Pobierz nazwę arkusza

Nazwy arkuszy są przechowywane w Nazwa własność Pościel lub Arkusze robocze obiekt. Nazwa arkusza to nazwa "karty", która jest widoczna na dole programu Excel:

Uzyskaj nazwę aktywnego arkusza

Spowoduje to wyświetlenie nazwy ActiveSheet w oknie komunikatu:

1 MsgBox ActiveSheet.Name

Pobierz nazwę arkusza według numeru indeksu

Spowoduje to wyświetlenie nazwy pierwszego arkusza roboczego w oknie komunikatu:

1 Arkusze MsgBox(1).Name

Spowoduje to wyświetlenie nazwy ostatniego arkusza roboczego w skoroszycie:

1 Arkusze MsgBox (Arkusze.Liczba). Nazwa

Pobierz nazwę arkusza według nazwy kodowej

W edytorze VBA istnieje możliwość zmiany „nazwy kodowej” arkusza. Nazwa kodowa nie jest widoczna dla użytkownika Excela i może być widoczna tylko w Edytorze VBA:

W VBA podczas pracy z Arkuszami możesz odwoływać się do zwykłej nazwy karty:

1 Arkusze("Nazwa karty").Aktywuj

lub nazwa kodowa VBA:

1 KodNazwa.Aktywuj

Odwoływanie się do nazwy kodowej jest pożądane w przypadku zmiany nazwy zakładki Arkusz. Jeśli zezwolisz użytkownikowi programu Excel na dostęp do zmiany nazw arkuszy, powinieneś odwoływać się do nazwy kodu w kodzie VBA, aby niezgodność nazwy karty Arkusza nie powodowała błędu. Nazwy kodowe arkuszy są omówione bardziej szczegółowo tutaj.

Aby uzyskać nazwę arkusza przy użyciu nazwy kodu VBA, wykonaj następujące czynności:

1 MsgBox CodeName.Name

Zmień nazwę arkusza

Możesz zmienić nazwę Arkuszy, dostosowując Nazwa własność Pościel lub Arkusze robocze obiekt.

Zmień nazwę aktywnego arkusza

1 ActiveSheet.Name = "Nowa nazwa"

Zmień nazwę arkusza według nazwy

1 Arkusze("StaryArkusz").Name = "NowaNazwa"

Zmień nazwę arkusza według numeru indeksu arkusza

Tutaj używamy 1, aby zmienić nazwę pierwszego arkusza w skoroszycie.

1 Arkusze(1).Name = "Nowa nazwa"

Zmień nazwę arkusza według nazwy kodowej

Ten kod zmieni nazwę arkusza, używając jego nazwy kodowej VBA (omówionej powyżej):

1 Component.Name = "Nowa nazwa"

Sprawdź, czy nazwa arkusza istnieje

Stworzyliśmy funkcję do sprawdzenia, czy Arkusz o określonej nazwie już istnieje.

123456789101112 'Sprawdź, czy na arkuszu istnieje zakres.„Pozostaw zakres pusty, aby sprawdzić, czy arkusz istnieje”„Wejścia:' WhatSheet - ciąg Nazwa arkusza (np. „Arkusz1”)' WhatRange (Opcjonalnie, Default = "A1") - Ciąg Nazwa zakresu (np. "A1")Funkcja RangeExists(WhatSheet As String, opcjonalnie ByVal WhatRange As String = "A1") jako BooleanTest przyciemnienia jako zakresPrzy błędzie Wznów DalejUstaw test = ActiveWorkbook.Sheets(WhatSheet).Range(WhatRange)RangeExists = Błąd.Liczba = 0W przypadku błędu Przejdź do 0Koniec funkcji

Funkcja zwróci TRUE, jeśli arkusz istnieje, lub FALSE, jeśli go nie ma.

Użyj funkcji w ten sposób:

123 Sub Test_SheetExists()MsgBox RangeExists("ustawienia")Napis końcowy

Skopiuj arkusz i zmień nazwę

Ten przykład pochodzi z naszego artykułu na temat kopiowania arkuszy.

Po skopiowaniu i wklejeniu Arkusza nowo utworzony arkusz staje się ActiveSheet. Aby zmienić nazwę skopiowanego arkusza, po prostu użyj ActiveSheet.Name:

12345678 Sub CopySheetRename2()Arkusze("Arkusz1").Kopiuj po:=Arkusze(Arkusze.Liczba)Przy błędzie Wznów DalejActiveSheet.Name = "Ostatni arkusz"W przypadku błędu Przejdź do 0Napis końcowy

Uwaga: Dodaliśmy obsługę błędów, aby uniknąć błędów, jeśli nazwa arkusza już istnieje.

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave