Czy musisz uruchomić makro podczas uruchamiania programu Excel? Masz dwie opcje:
1. Utwórz podrzędną Workbook_Open() w „ThisWorkbook”.
2. Umieść podrzędną Auto_Open() w dowolnym module.
Workbook_Open Event
Utwórz podtytuł „Workbook_Open” w „ThisWorkbook”
123 | Zeszyt_otwarty ()MsgBox "Ten kod działał na starcie programu Excel!"Napis końcowy |
Auto_Open
Używając drugiej metody: po prostu utwórz podprogram o nazwie Auto_Open i umieść w nim kod lub wywołaj inny podprogram stamtąd. Twój kod jest uruchamiany automatycznie podczas uruchamiania programu Excel.
123 | Prywatna sub Auto_Open()MsgBox "Ten kod działał na starcie programu Excel!"Napis końcowy |
Twórz i nazwij nowy arkusz roboczy za każdym razem, gdy otwiera się program Excel
Poniższy kod działa podczas otwierania skoroszytu. Automatycznie dodaje nowy arkusz i oznacza go datą. Sprawdza również, czy arkusz jeszcze nie istnieje – aby umożliwić otwieranie go więcej niż raz dziennie.
Ten kod korzysta ze zdarzenia Workbook Open Event i należy go umieścić w module workbook pod zdarzeniem „Open work Book”. Funkcję Sheet_Exist należy umieścić w module, co sprawdza, czy arkusz istnieje:
123456789101112131415 | Prywatny skoroszyt podrzędny_Open()Dim New_Sheet_Name jako ciągNowa_Nazwa_Arkusza = Format(Teraz(), "dd-mm-rr")Jeśli arkusz_istnieje(Nowa_nazwa_arkusza) = Fałsz, toZ skoroszytemWorksheets.Add().Name = Nowa_nazwa_arkuszaKończyć zZakończ, jeśliZapisaćNapis końcowy |
12345678910111213 | Arkusz funkcji istnieje(Nazwa arkusza roboczego jako ciąg) jako BooleanDim Work_sheet jako WorksheetArkusz_Istnieje = FałszDla każdego Work_sheet w ThisWorkbook.WorksheetsJeśli Work_sheet.Name = Worksheet_Name ThenArkusz_Istnieje = PrawdaZakończ, jeśliNastępnyKoniec funkcji |
Aby pobrać plik .XLSM do tego samouczka, kliknij tutaj
Ustaw domyślny arkusz po otwarciu skoroszytu
Czy chcesz mieć pewność, że arkusz jest zawsze wyświetlany jako pierwszy po otwarciu skoroszytu? Na przykład po otwarciu skoroszytu arkusz 3 jest zawsze aktywnym arkuszem. Oto jak.
Możesz odwoływać się do arkusza z VBA po nazwie programu (np. Arkusz3) lub po nazwie zakładki (np. JanData). Najlepiej używać nazwy programu, ponieważ jeśli nazwa karty się zmieni, Twój kod VBA, który odwołuje się do nazwy karty, przestanie działać. Jeśli jednak użyjesz nazwy programu, użytkownik może wielokrotnie zmieniać nazwę karty, a twoje makro nadal działa.
Aby upewnić się, że określony arkusz jest zawsze aktywowany po otwarciu skoroszytu, po prostu umieść kod sheet.activate w subworkbook_open. To jest przykład, który aktywuje arkusz Sheet3 przy użyciu nazwy programu za każdym razem, gdy otwiera się skoroszyt.
123 | Prywatny skoroszyt podrzędny_Open()Arkusz3.AktywujNapis końcowy |
A to robi za pomocą nazwy zakładki:
1234 | Prywatny skoroszyt podrzędny_Open()Arkusze("nazwatabeli").AktywujNapis końcowy |
Uwaga boczna: aby to zadziałało, musisz zapisać i ponownie uruchomić program Excel.
Uwaga boczna: działa to tylko wtedy, gdy włączone są makra.
Uwaga dodatkowa: Umieść ten kod w oknie kodu dla obiektu ThisWorkbook w VBE.
Załaduj formularz za każdym razem, gdy otwiera się skoroszyt
Jeśli chcesz załadować formularz lub uruchomić kod VBA podczas otwierania skoroszytu programu Excel, umieść swój kod w oknie kodu Thisworkbook oraz w sub Workbook_Open.
Z Twojego arkusza kalkulacyjnego:
1. Naciśnij ALT i F11, aby otworzyć edytor VB
2. Kliknij dwukrotnie słowo ThisWorkbook, aby otworzyć okno kodu
3. Wpisz następujący kod w oknie kodu ThisWorkbook
123 | Prywatny skoroszyt podrzędny_Open()UserForm1.PokażNapis końcowy |
Uwaga dodatkowa: zastąp Userform1 nazwą swojego formularza
4. Zamknij Excel i otwórz ponownie.