Korzystanie z okna dialogowego do otwierania i zapisywania skoroszytu

Spisie treści:

Anonim

Wiemy już, jak otworzyć lub zapisać plik Excela w VBA. Po prostu używamy metody Open i SaveAs obiektu Workbook. Ale to wymaga zakodowania ścieżki pliku. Ale w większości przypadków będziesz chciał, aby użytkownik końcowy wybrał plik za pomocą GUI lub powiedział okno dialogowe Otwórz plik lub Zapisz jako, które pozwala użytkownikowi wizualnie i łatwo wybrać lokalizację pliku.

W tym artykule omówimy kod używany do wyświetlania okna dialogowego otwierania skoroszytu i zapisywania jako okno dialogowe.

Załączam skoroszyt, który możesz pobrać. Skoroszyt dołączony do tego artykułu zawiera trzy makra

Kod VBA do otwierania pliku za pomocą okna dialogowego Otwórz plik

W tym kodzie użyjemy metody GetOpenFilename Application. Składnia metody GetOpenFilename to:

Application.GetOpenFilename([FileFilter],[FilterIndex],[Tytuł],[ButtonText],[MultiSelect])

[Filtr plików]: Możesz zdefiniować wyświetlanie tylko jednego rodzaju pliku w wybranym folderze. Jeśli napiszesz "Pliki Excela, *.xlsx, *.xls, *.xlsm" itp., tylko pliki Excela będą wyświetlane z folderu w oknie dialogowym otwierania pliku.

[Indeks filtra]:Jest to liczba filtrów plików, których chcesz użyć.

[Tytuł]: Tytuł okna dialogowego.

[Przycisk tekstowy]:Do określania tekstu przycisku. Nieważne.

[Wielokrotny wybór]: Jest to zmienna logiczna. Jeśli ustawisz True lub 1, będziesz mógł wybrać więcej niż jeden plik. Jeśli ustawisz to false, możesz wybrać tylko jeden plik.

Dość teorii. Zróbmy kilka zaklęć.

Kod VBA do otwierania jednego pliku na raz

Option Explicit Sub OpenOneFile() Dim FileName As Variant 'Wyświetlanie okna dialogowego otwierania pliku FileName = Application.GetOpenFilename("Excel-files,*.xls", _ 1, "Wybierz jeden plik do otwarcia", , False) 'Użytkownik nie 't wybierz plik If TypeName(FileName) = "Boolean" Then Exit Sub 'Otwórz skoroszyt Workbooks.Open FileName End Sub 

Jak to działa?

Po uruchomieniu tego segmentu kodu metoda GetOpenFilename dla obiektu Application otworzy okno dialogowe Otwórz plik. Tytuł okna dialogowego będzie brzmiał „Wybierz jeden plik do otwarcia”, jak zdefiniowaliśmy w kodzie. Jeśli wybierzesz plik, uruchomi się kod Worbook.Open i plik zostanie otwarty. Jeśli nie wybierzesz pliku, sub zostanie zamknięty bez uruchamiania kodu Workbook.Open.

Kod VBA, aby otworzyć jeden lub więcej plików na raz

Ten segment kodu otworzy okno dialogowe otwierania pliku, ale będziesz mógł wybrać więcej niż jeden plik naraz.

Sub OpenMultipleFiles() Dim FileName As Variant, f As Integer 'Wyświetlanie okna dialogowego otwierania pliku FileName = Application.GetOpenFilename("Pliki Excela,*.xlsx", _ 1, "Wybierz jeden lub więcej plików do otwarcia", , True ) 'Użytkownik nie wybrał pliku If TypeName(FileName) = "Boolean" Then Exit Sub 'Otwórz wszystkie skoroszyty wybrane przez użytkownika For f = 1 To UBound(FileName) Workbooks.Open FileName(f) Next f End Sub 

Zauważ, że tutaj ustawiliśmy zmienną multiselect na True. Umożliwi to wielokrotny wybór pliku.

Kod VBA, aby otworzyć okno dialogowe Zapisz jako

Aby otworzyć okno dialogowe Zapisz jako, użyjemy metody GetSaveAsFilename obiektu Application. Składnia metody to:

Application.GetSaveAsFilename([InitialFileName],[FileFilter],[FilterIndex],[Tytuł],[ButtonText])

[Początkowa nazwa pliku]:Początkowa nazwa pliku. Jeśli nie zmienisz nazwy pliku podczas jego zapisywania, plik zostanie zapisany pod tą nazwą.

[Filtr plików]: Możesz zdefiniować wyświetlanie tylko jednego rodzaju pliku w wybranym folderze. Jeśli napiszesz "Pliki Excela, *.xlsx, *.xls, *.xlsm" itp., tylko pliki Excela będą wyświetlane z folderu w oknie dialogowym otwierania pliku.

[Indeks filtra]: Indeks filtra pliku.

[Tytuł]:Tytuł okna dialogowego.

[Przycisk tekstowy]:Jest to używane w systemie Mac do zmiany nazwy przycisku.

Proszę postępować zgodnie z poniższym kodem!

Sub SaveFile() Dim FileName As Variant 'Wyświetlanie okna dialogowego saveas FileName = Application.GetSaveAsFilename("MyFileName.xls", _ "Excel files,*.xls", 1, "Wybierz folder i nazwę pliku") 'Użytkownik zrobił' t zapisz plik If TypeName(FileName) = "Boolean" Then Exit Sub 'Zapisz skoroszyt ActiveWorkbook.SaveAs FileName End Sub 

SaveFile Macro używa metody GetSaveAsFilename obiektu Application, aby otworzyć okno dialogowe Zapisz jako, przypisując nazwę pliku i wybierając lokalizację do zapisania skoroszytu.

Więc tak, w ten sposób możesz używać okna dialogowego do otwierania i zapisywania plików za pomocą VBA. Mam nadzieję, że to było pomocne. Jeśli masz jakiekolwiek wątpliwości dotyczące tego artykułu lub innego tematu VBA, zapytaj w sekcji komentarzy poniżej.

Użyj zamkniętego skoroszytu jako bazy danych (DAO) przy użyciu VBA w Microsoft Excel | Aby użyć zamkniętego skoroszytu jako bazy danych z połączeniem DAO, użyj tego fragmentu kodu VBA w programie Excel.

Użyj zamkniętego skoroszytu jako bazy danych (ADO) za pomocą VBA w Microsoft Excel | Aby użyć zamkniętego skoroszytu jako bazy danych z połączeniem ADO, użyj tego fragmentu kodu VBA w programie Excel.

Pierwsze kroki z formularzami użytkownika Excel VBA | W celu wprowadzenia danych do bazy danych korzystamy z formularzy. Formularze użytkownika programu Excel są przydatne do uzyskiwania informacji od użytkownika. Oto, jak powinieneś zacząć od formularzy użytkownika VBA.

Zmień wartość / zawartość kilku formantów UserForm za pomocą VBA w programie Excel | Aby zmienić zawartość kontrolek formularza użytkownika, użyj tego prostego fragmentu kodu VBA.

Zapobiegaj zamykaniu formularza użytkownika, gdy użytkownik kliknie przycisk x za pomocą VBA w programie Excel | Aby uniemożliwić zamknięcie formularza użytkownika, gdy użytkownik kliknie przycisk x formularza, używamy zdarzenia UserForm_QueryClose.

Popularne artykuły:

50 skrótów Excela, które zwiększą Twoją produktywność | Przyspiesz swoje zadanie. Te 50 skrótów przyspieszy pracę w programie Excel.

Funkcja WYSZUKAJ.PIONOWO w programie Excel | Jest to jedna z najczęściej używanych i popularnych funkcji programu Excel, która służy do wyszukiwania wartości z różnych zakresów i arkuszy.

LICZ.JEŻELI w Excelu 2016 | Policz wartości z warunkami za pomocą tej niesamowitej funkcji. Nie musisz filtrować danych, aby policzyć konkretną wartość. Funkcja Countif jest niezbędna do przygotowania deski rozdzielczej.

Jak korzystać z funkcji SUMIF w programie Excel? | To kolejna ważna funkcja deski rozdzielczej. Pomaga to zsumować wartości w określonych warunkach