VBA Otwórz / Zamknij skoroszyt

W tym samouczku dowiesz się, jak używać VBA do otwierania i zamykania skoroszytu programu Excel na kilka sposobów.

VBA umożliwia otwieranie lub zamykanie plików przy użyciu standardowych metod .Otwarty oraz .Blisko.

Jeśli chcesz dowiedzieć się, jak sprawdzić, czy plik istnieje przed próbą otwarcia pliku, możesz kliknąć ten link: Plik VBA istnieje

Otwórz skoroszyt w VBA

Otwórz skoroszyt ze ścieżki

Jeśli wiesz, który plik chcesz otworzyć, możesz określić jego pełną nazwę ścieżki w funkcji. Oto kod:

1 Skoroszyty. Otwórz "C:\VBA Folder\Przykładowy plik 1.xlsx"

Ta linia kodu otwiera plik „Przykładowy plik 1” z „Folderu VBA”.

Otwórz skoroszyt - ActiveWorkbook

Po otwarciu skoroszytu automatycznie staje się on ActiveWorkbook. Możesz odwoływać się do nowo otwartego skoroszytu w następujący sposób:

1 ActiveWorkbook.Zapisz

Kiedy odwołujesz się do arkusza lub zakresu i pomijasz nazwę skoroszytu, VBA założy, że odwołujesz się do ActiveWorkbook:

1 Arkusze("Arkusz1").Name = "Wejście"

Otwórz skoroszyt i przypisz do zmiennej

Możesz także otworzyć skoroszyt i przypisać go bezpośrednio do zmiennej obiektu. Ta procedura otworzy skoroszyt do wb zmienna, a następnie zapisz skoroszyt.

123456 Sub OpenWorkbookToVariable()Dim wb jako skoroszytSet wb = Workbooks.Open("C:\VBA Folder\Sample file 1.xlsx")wb.ZapiszNapis końcowy

Przypisywanie skoroszytów do zmiennych po ich otwarciu to najlepszy sposób na śledzenie skoroszytów

Okno dialogowe otwierania pliku skoroszytu

Możesz także wywołać okno dialogowe Otwórz plik skoroszytu. Dzięki temu użytkownik może przejść do pliku i otworzyć go:

12345678 Sub OpenWorkbook ()Dim strFile As StringstrFile = Aplikacja.PobierzOpenFilename()Workbooks.Open (strFile)Napis końcowy

Jak widać na obrazku 1, dzięki temu podejściu użytkownicy mogą wybrać plik do otwarcia. Okno dialogowe Otwórz plik można w dużym stopniu dostosować. Możesz domyślnie wybrać określony folder, wybrać, które typy plików są widoczne (np. Tylko xlsx) i nie tylko. Przeczytaj nasz samouczek dotyczący okna dialogowego Otwórz plik, aby uzyskać szczegółowe przykłady.

Otwórz nowy skoroszyt

Ten wiersz kodu otworzy nowy skoroszyt:

1 Skoroszyty.Dodaj

Otwórz nowy skoroszyt do zmiennej

Ta procedura otworzy nowy skoroszyt, przypisując go do zmiennej wb:

1234 Sub Otwórz nowy skoroszyt()Dim wb jako skoroszytUstaw wb = Skoroszyty.DodajNapis końcowy

Otwórz składnię skoroszytu

Kiedy używasz Workbooks.Open możesz zauważyć, że podczas otwierania skoroszytu dostępnych jest wiele opcji:

Nazwa pliku jest wymagana. Wszystkie inne argumenty są opcjonalne - i prawdopodobnie nie będziesz musiał znać większości innych argumentów. Oto dwa najczęstsze:

Otwórz skoroszyt tylko do odczytu

Gdy skoroszyt jest otwarty tylko do odczytu, nie można zapisać oryginalnego pliku. Zapobiega to edycji pliku przez użytkownika.

1 Workbooks.Open "C:\VBA Folder\Sample file 1.xlsx", , True

Otwórz skoroszyt chroniony hasłem

Skoroszyt może być chroniony hasłem. Użyj tego kodu, aby otworzyć skoroszyt chroniony hasłem:

1 Workbooks.Open "C:\VBA Folder\Sample file 1.xlsx", , , "hasło"

Otwórz skoroszyt Uwagi do składni

Zauważ, że na powyższym obrazku umieściliśmy nawias „(”, aby pokazać składnię. Jeśli używasz nawiasów podczas pracy ze skoroszytami. Otwórz, musisz przypisać skoroszyt do zmiennej:

1234 Sub OpenWB()Dim wb jako skoroszytSet wb = Workbooks.Open("C:\VBA Folder\Sample file 1.xlsx", True, True)Napis końcowy

Zamknij skoroszyt w VBA

Zamknij określony skoroszyt

Podobnie jak w przypadku otwierania skoroszytu, istnieje kilka sposobów na zamknięcie pliku. Jeśli wiesz, który plik chcesz zamknąć, możesz użyć następującego kodu:

1 Workbooks.Close ("C:\VBA Folder\Przykładowy plik 1.xlsx")

Ten wiersz kodu zamyka plik „Przykładowy plik 1”, jeśli jest otwarty. Jeśli nie, zwróci błąd, więc powinieneś zadbać o obsługę błędów.

Zamknij aktywny skoroszyt

Jeśli chcesz zamknąć skoroszyt, który jest aktualnie aktywny, ten wiersz kodu pozwoli ci to zrobić:

1 ActiveWorkbook.Zamknij

Zamknij wszystkie otwarte skoroszyty

Aby zamknąć wszystkie otwarte skoroszyty, możesz po prostu użyć tego kodu:

1 Skoroszyty.Zamknij

Zamknij pierwszy otwarty skoroszyt

Spowoduje to zamknięcie pierwszego otwartego/utworzonego skoroszytu:

1 Skoroszyty(1).Zamknij

Zamień 1 na 2, aby zamknąć drugi otwarty / utworzony skoroszyt i tak dalej.

Zamknij bez zapisywania

Spowoduje to zamknięcie skoroszytu bez zapisywania i bez wyświetlania monitu o zapisanie:

1 ActiveWorkbook.Close savechanges:=False

Zapisz i zamknij bez monitu

Podobnie spowoduje to zapisanie i zamknięcie skoroszytu bez wyświetlania monitu o zapisanie:

1 ActiveWorkbook.Close savechanges:=True

Uwaga: Istnieje kilka innych sposobów wskazania, czy zapisać lub nie zapisać skoroszytu, a także czy wyświetlać monity, czy nie. Zostało to omówione bardziej szczegółowo tutaj.

Inne otwarte przykłady zeszytu ćwiczeń

Otwórz wiele nowych skoroszytów

Ta procedura otworzy wiele nowych skoroszytów, przypisując nowe skoroszyty do tablicy:

12345678 Sub OpenMultipleNewWorkbooks()Dim arrWb(3) jako skoroszytDim i jako liczba całkowitaDla i = 1 do 3Ustaw arrWb(i) = Skoroszyty.DodajDalej jaNapis końcowy

Otwórz wszystkie skoroszyty programu Excel w folderze

Ta procedura spowoduje otwarcie wszystkich skoroszytów programu Excel w folderze przy użyciu selektora okna dialogowego Otwórz plik.

12345678910111213141516 Sub OpenMultipleWorkbooksInFolder()Dim wb jako skoroszytDim dlgFD As FileDialogDim strFolder jako ciągDim strFileName jako ciągUstaw dlgFD = Application.FileDialog(msoFileDialogFolderPicker)Jeśli dlgFD.Show = -1 WtedystrFolder = dlgFD.SelectedItems(1) & Application.PathSeparatorstrFileName = Dir(strFolder & "*.xls*")Wykonaj, gdy strFileName ""Ustaw wb = Workbooks.Open(strFolder & strFileName)strFileName = KatalogPętlaZakończ, jeśliNapis końcowy

Sprawdź, czy skoroszyt jest otwarty

Ta procedura sprawdzi, czy skoroszyt jest otwarty:

1234567891011 Test podrzędny według nazwy skoroszytu()Dim wb jako skoroszytDla każdego wb w skoroszytachJeśli wb.Name = "Nowy arkusz Microsoft Excel Worksheet.xls" ThenMsgBox "Znalazłem to"Exit Sub 'tutaj kod połączenia, na razie po prostu wyjdziemyZakończ, jeśliNastępnyNapis końcowy

Workbook_Open Event

Zdarzenia VBA to „wyzwalacze”, które informują VBA o uruchomieniu określonego kodu. Możesz skonfigurować zdarzenia skoroszytu do otwierania, zamykania, przed zapisaniem, po zapisaniu i nie tylko.

Przeczytaj nasz samouczek Workbook_Open Event, aby dowiedzieć się więcej o automatycznym uruchamianiu makr po otwarciu skoroszytu.

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

wave wave wave wave wave