Uruchom makro podczas uruchamiania programu Excel - przykłady kodu VBA

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.

wave wave wave wave wave