Note: The other languages of the website are Google-translated. Back to English

Jak ustawić nazwę karty arkusza równą wartości komórki w programie Excel?

W niektórych przypadkach może zajść potrzeba zmiany nazwy arkusza na podstawie określonej wartości komórki. W tym artykule pokażemy metody tworzenia nazwy karty arkusza równej wartości komórki w programie Excel.

Ustaw nazwę karty arkusza równą wartości komórki z kodem VBA
Ustaw nazwę karty arkusza równą wartości komórki za pomocą Kutools for Excel


Ustaw nazwę karty arkusza równą wartości komórki z kodem VBA

Za pomocą następującego kodu VBA możesz automatycznie ustawić nazwę karty arkusza równą wartości komórki.

1. Kliknij prawym przyciskiem myszy kartę arkusza, dla której chcesz, aby nazwa arkusza była równa wartości komórki, a następnie kliknij Wyświetl kod z menu po kliknięciu prawym przyciskiem myszy. Zobacz zrzut ekranu:

2. Skopiuj i wklej poniższy kod do okna Kod, a następnie naciśnij inny + Q klawisze jednocześnie, aby zamknąć okno Microsoft Visual Basic for Applications.

Kod VBA: Ustaw kartę arkusza równą wartości komórki

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20230130
    On Error Resume Next
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        ActiveSheet.Name = ActiveSheet.Range("A1")
    ElseIf Not Intersect(Target.Dependents, Range("A1")) Then
        ActiveSheet.Name = ActiveSheet.Range("A1")
    End If
End Sub

Uwagi: W kodzie A1 to komórka zawierająca wartość, której należy użyć jako nazwy arkusza. Możesz to zmienić według potrzeb.

Odtąd, gdy wartość w komórce A1 ulegnie zmianie, nazwa karty arkusza również zostanie zmieniona.


Ustaw nazwę karty arkusza równą wartości komórki za pomocą Kutools for Excel

W tej sekcji przedstawiamy Zmień nazwę wielu arkuszy roboczych użyteczność Kutools dla programu Excel. Za pomocą tego narzędzia możesz łatwo zmienić nazwy arkuszy z określoną wartością komórki w programie Excel.

Przed złożeniem wniosku Kutools dla programu ExcelProszę pobierz i zainstaluj najpierw.

1. kliknij Kutools Plus > Ćwiczenie > Zmień nazwę wielu arkuszy roboczych. Zobacz zrzut ekranu:

2. w Zmień nazwę wielu arkuszy roboczych w oknie dialogowym, musisz wykonać następujące czynności.

1). Sprawdź nazwy arkuszy, których nazwę chcesz zmienić w Szablony do nauki pudełko (możesz wybrać jeden arkusz lub wiele arkuszy).
2). Wybierz Zastąp oryginalną nazwę arkusza Okno w Zmień nazwę opcji sekcja.
3). Jeśli chcesz zmienić nazwę arkusza lub wielu arkuszy z określoną wartością komórki, wybierz plik Z określonego zakresu i wybierz zakres komórek, na podstawie których chcesz zmienić nazwy arkuszy.
4). Kliknij OK przycisk. Zobacz zrzut ekranu:

Możesz zobaczyć, że wybrane arkusze robocze są natychmiast zmieniane według określonej wartości zakresu, jak pokazano poniżej.

Uwagi:

1. Możesz użyć Filtruj funkcja, aby łatwo odfiltrować potrzebny arkusz roboczy, jeśli istnieje wiele arkuszy roboczych.
2. Jeśli chcesz zmienić nazwę wielu arkuszy z określoną wartością komórki w każdym arkuszu. Na przykład arkusz Sheet1 będzie równy wartości swojej komórki A1, a arkusz Sheet2 będzie również równy wartości swojej komórki A1. Proszę wybrać arkusze w Szablony do nauki a następnie wybierz Zmień nazwy arkuszy z określoną komórką opcję i określ komórkę A1 w polu.

3. Nazwa arkusza nie zostanie automatycznie zmieniona wraz ze zmianą wartości komórki.

  Jeśli chcesz skorzystać z bezpłatnego okresu próbnego (30-dzień) tego narzędzia, kliknij, aby go pobrać, a następnie przejdź do wykonania operacji zgodnie z powyższymi krokami.


Ustaw nazwę karty arkusza równą wartości komórki za pomocą Kutools for Excel


Najlepsze narzędzia biurowe

Kutools dla programu Excel rozwiązuje większość problemów i zwiększa produktywność o 80%

  • Ponowne użycie: Szybko włóż złożone wzory, wykresy i wszystko, czego używałeś wcześniej; Szyfruj komórki z hasłem; Utwórz listę mailingową i wysyłaj e-maile ...
  • Pasek Super Formula (łatwo edytować wiele wierszy tekstu i formuły); Układ do czytania (łatwe odczytywanie i edytowanie dużej liczby komórek); Wklej do filtrowanego zakresu...
  • Scal komórki / wiersze / kolumny bez utraty danych; Podziel zawartość komórek; Połącz zduplikowane wiersze / kolumny... Zapobiegaj zduplikowanym komórkom; Porównaj zakresy...
  • Wybierz Duplikat lub Unikalny Wydziwianie; Wybierz puste wiersze (wszystkie komórki są puste); Super Find i Fuzzy Find w wielu zeszytach ćwiczeń; Losowy wybór ...
  • Dokładna kopia Wiele komórek bez zmiany odwołania do formuły; Automatyczne tworzenie odniesień do wielu arkuszy; Wstaw punktory, Pola wyboru i nie tylko ...
  • Wyodrębnij tekst, Dodaj tekst, Usuń według pozycji, Usuń przestrzeń; Tworzenie i drukowanie podsumowań stronicowania; Konwertuj zawartość komórek i komentarze...
  • Super filtr (zapisz i zastosuj schematy filtrów do innych arkuszy); Zaawansowane sortowanie według miesiąca / tygodnia / dnia, częstotliwości i innych; Specjalny filtr pogrubieniem, kursywą ...
  • Połącz skoroszyty i arkusze robocze; Scal tabele na podstawie kluczowych kolumn; Podziel dane na wiele arkuszy; Konwersja wsadowa xls, xlsx i PDF...
  • Ponad 300 zaawansowanych funkcji. Obsługuje Office / Excel 2007-2021 i 365. Obsługuje wszystkie języki. Łatwe wdrażanie w przedsiębiorstwie lub organizacji. Pełne funkcje 30-dniowa bezpłatna wersja próbna. 60-dniowa gwarancja zwrotu pieniędzy.
karta kte 201905

Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę

  • Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
  • Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
  • Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!
officetab dół
Sortuj komentarze według
Komentarze (28)
Brak ocen. Oceń jako pierwszy!
Ten komentarz został zminimalizowany przez moderatora na stronie
Wkleiłem to zgodnie z instrukcją, ale nie pojawiło się na mojej liście dostępnych makr. Próbowałem uruchomić go ręcznie, wpisując nazwę makra. Podczas próby uruchomienia makra pojawił się komunikat o błędzie „Argument nie jest opcjonalny”.

Prywatny Sub Worksheet_Change (ByVal Target As Range)
Jeśli nie przecina (cel, zakres ("A1")) to nic, wtedy
ActiveSheet.Name = ActiveSheet.Range("A1")
End If
End Sub

Czy ktoś inny uruchomił ten kod i miał ten sam problem?

Jako test uruchomiłem bardziej podstawowy kod i działał dobrze, więc wartość w "A1" nie powoduje problemu. Kiedy uruchamiam poniższy kod, widzę nazwę makra „myTabName” na liście makr. Powyższy kod nie pojawia się i zakładam, że jest to spowodowane argumentem błędu/braku.

Sub nazwa_mojej_karty()
ActiveSheet.Name = ActiveSheet.Range("A1")
End Sub

Dziękuję za pomoc, ponieważ bardzo chciałbym użyć kodu zgodnie z przeznaczeniem do automatyzacji zmian nazw zakładek na podstawie wartości komórki.
Ten komentarz został zminimalizowany przez moderatora na stronie
Drogi Jason,
Kod działa dobrze w moim przypadku. Czy mógłbyś podać swoją wersję pakietu Office? Dziękuję za Twój komentarz.
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Kryształowo,

To również nie zadziałało dla mnie, czy może to być spowodowane tym, że komórka, do której się odwołuję, jest formułą?

Dzięki za odpowiedź
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Mei,

Dziękujemy za twoją opinię. Problem był spowodowany przez formułę. Kod został zmodyfikowany. Proszę spróbować.

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20230130
    On Error Resume Next
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        ActiveSheet.Name = ActiveSheet.Range("A1")
    ElseIf Not Intersect(Target.Dependents, Range("A1")) Then
        ActiveSheet.Name = ActiveSheet.Range("A1")
    End If
End Sub
Ten komentarz został zminimalizowany przez moderatora na stronie
Dostaję ten kod do działania, ale nie aktualizuje on automatycznie nazwy karty, gdy komórka, z której pobiera nazwę, odwołuje się do innej komórki (i ta komórka się zmienia).


Tzn. zmieniam komórkę na liście głównej, która zmienia tekst komórki w określonej komórce na każdej karcie, do której kod odnosi się jako nazwa karty, ALE karta nie aktualizuje odpowiednio swojej nazwy.
Ten komentarz został zminimalizowany przez moderatora na stronie
Dzień dobry,
Poniższy kod VBA może rozwiązać Twój problem. Dziękuję za komentarz1

Prywatny Sub Worksheet_Change (ByVal Target As Range)
Dim xRg jako zakres, xCell jako zakres
On Error Resume Next
Jeśli nie przecina (cel, zakres ("A1")) to nic, wtedy
ActiveSheet.Name = ActiveSheet.Range("A1")
End If
Application.EnableEvents = Fałsz
Ustaw xRg = ActiveSheet.Range("A1").Precedenty
Jeśli nie xRg jest niczym, to
Dla każdego xCell w xRg
ActiveSheet.Name = ActiveSheet.Range("A1")
Dalej
End If
Application.EnableEvents = True
End Sub
Ten komentarz został zminimalizowany przez moderatora na stronie
Nadal nie działa. Mam ten sam problem co jJJ. kryształ: Czy w Twojej odpowiedzi znajduje się cały kod?
Ostatnia linia pokazana w Twoim komentarzu to "Set xRg = ActiveSheet.Range("A1").Precedents"
Ten komentarz został zminimalizowany przez moderatora na stronie
Drogi JAS,
Kliknij przycisk Czytaj więcej po prawej stronie komentarza, aby wyświetlić cały komentarz.
Ten komentarz został zminimalizowany przez moderatora na stronie
Nadal mam ten sam problem.

Mam A1 nowego arkusza wskazującego na inną komórkę w innej karcie. Aktualizuje się za pierwszym razem (po wykonaniu), ale potem bez zmian podczas edycji komórki głównej
Ten komentarz został zminimalizowany przez moderatora na stronie
Private Sub Worksheet_SelectionChange (ByVal Target As Excel.Range)
Ustaw cel = zakres ("A1")
Jeśli cel = „” to wyjdź z sub
W przypadku błędu przejdź do złej nazwy
ActiveSheet.Name = Lewo (cel, 31)
Exit Sub
Złe imię:
MsgBox "Proszę zmienić wpis w A1." & Chr(13) _
& "Wydaje się, że zawiera jeden lub więcej " & Chr(13) _
& „nielegalne znaki”. & Chr(13)
Zakres ("A1"). Aktywuj
End Sub
Ten komentarz został zminimalizowany przez moderatora na stronie
Nadal problem jest ten sam, zmienia się za pierwszym razem. kiedy łączę tę komórkę z innym arkuszem i zmieniam ją, nie zmienia się to automatycznie
Ten komentarz został zminimalizowany przez moderatora na stronie
Muszę użyć tego kodu, ale nigdy wcześniej nie wprowadzałem kodu vba. Wszelkie wskazówki będą mile widziane.
Ten komentarz został zminimalizowany przez moderatora na stronie
Zmieniam komórkę na liście głównej, która zmienia tekst komórki w określonej komórce na każdej karcie, do której kod odnosi się jako nazwa karty, ALE karta nie aktualizuje odpowiednio swojej nazwy.

---- To nie działa
Ten komentarz został zminimalizowany przez moderatora na stronie
Mam cały kod i zadziałał. Dziękuję bardzo za Twoją pomoc!
Ten komentarz został zminimalizowany przez moderatora na stronie
Drogi JAS,
Cieszę się że mogłem pomóc.
Ten komentarz został zminimalizowany przez moderatora na stronie
Możesz raczej użyć prostego makra



Sub Macro3 ()
Indeks dim As Integer
Dla indeksu = 1 do 18

Arkusze(indeks).Nazwa = Arkusze(indeks).Range("A2").Wartość

Następny indeks



End Sub
Ten komentarz został zminimalizowany przez moderatora na stronie
Dobry dzień,
Dziękujemy za dzielenie się.
Ten komentarz został zminimalizowany przez moderatora na stronie
To jest dokładnie to, czego potrzebuję, ale potrzebuję karty, aby odtworzyć datę i nie działa ... Zakładam, że ma to związek ze sposobem, w jaki Excel działa na datę i godzinę, czy ktoś może zaproponować obejście?
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Nick,
Program Excel nie obsługuje wpisywania nazwy arkusza zawierającej znaki specjalne. Jeśli wpisana data zawiera znak /, nie pozwoli to na utworzenie nazwy arkusza z tą datą.
Ten komentarz został zminimalizowany przez moderatora na stronie
Jak mogę odwołać się do dwóch komórek. na przykład imię i numer identyfikacyjny?
Ten komentarz został zminimalizowany przez moderatora na stronie
Używam twojego dokładnego kodu z powyższego kodu VBA, który działa idealnie dla tego, czego potrzebuję. Mam jednak kilka makr na arkuszu o nazwie Szablon pracy, który jest kopiowany i ponownie używany w każdym nowym zadaniu. Wszystkie moje makra zaprojektowałem w oparciu o nową skopiowaną wersję o nazwie Job Template (2). Po zmianie nazwy arkusza na nową nazwę zadania makra przestają działać i muszą to robić ręcznie. Chciałbym móc używać dowolnego z moich przycisków makr w dowolnym momencie, zamiast używać ich tylko przed zmianą nazwy arkusza.

Czy istnieje sposób, aby kod VBA zawsze odwoływał się do nazwy arkusza przed uruchomieniem pozostałych funkcji kodu?
Ten komentarz został zminimalizowany przez moderatora na stronie
Jaka jest najwyższa liczba arkuszy roboczych, których nazwy można zmienić za pomocą Kutools Plus? bo excel pozwala mi na zmianę tylko 17 nazw i tyle
Ten komentarz został zminimalizowany przez moderatora na stronie
Działało to idealnie w przypadku mojego pierwszego arkusza roboczego, ale nie w przypadku drugiego lub trzeciego itd. (Mam do około 20 arkuszy roboczych, które wymagają tej funkcji). Czy czegoś mi brakuje?
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Owen,
Ten kod działa tylko dla jednego arkusza na czas. Przepraszam za niedogodności.
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Kryształowo,

Po wklejeniu kodu pojawia się błąd „nie zdefiniowano typu zdefiniowanego przez użytkownika”?

Dzięki.
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Tom J,
Upewnij się, że te trzy opcje są zaznaczone w oknie dialogowym Referencje - VBAProject.
https://www.extendoffice.com/images/stories/comments/comment-picture-zxm/error.png
Ten komentarz został zminimalizowany przez moderatora na stronie
pracował pięknie!
Ten komentarz został zminimalizowany przez moderatora na stronie
bonjour,
que voulez-vous dire par appuyer autre autre+q dans le code vba après avoir collé.
J'ai simplement fermé la page après avoir collé et ça ne marche pas
dziękuję
Nie ma tu jeszcze żadnych komentarzy
Zostaw swój komentarz
Publikowanie jako gość
×
Oceń ten post:
0   Postacie
Sugerowane lokalizacje

Bądż na bieżąco

Prawa autorskie © 2009 - www.extendoffice.com. | Wszelkie prawa zastrzeżone. Zasilany przez ExtendOffice, | Mapa strony
Microsoft i logo Office są znakami towarowymi lub zastrzeżonymi znakami towarowymi Microsoft Corporation w Stanach Zjednoczonych i / lub innych krajach.
Chronione przez Sectigo SSL