VBA — wybór i otwieranie pliku w Excelu
Jak w VBA pokazać okno wyboru pliku i otworzyć wskazany skoroszyt. Obsługa anulowania oraz filtr plików Excel.
Application.GetOpenFilename pozwala użytkownikowi wskazać plik bez wpisywania ścieżki na sztywno.
Skopiuj makro
Sub WybierzIOtworzPlik()
Dim filePath As Variant
Dim wb As Workbook
filePath = Application.GetOpenFilename( _
FileFilter:="Pliki Excel (*.xlsx;*.xlsm),*.xlsx;*.xlsm", _
Title:="Wybierz plik Excel")
If VarType(filePath) = vbBoolean Then Exit Sub
Set wb = Workbooks.Open(CStr(filePath))
MsgBox "Otwarto: " & wb.Name
End SubCo zmienić w kodzie?
FileFilter możesz rozszerzyć o inne typy plików, np. .xlsb.
Po Workbooks.Open możesz od razu przypisać otwarty skoroszyt do zmiennej i pracować na nim dalej.
Warunek z VarType zabezpiecza makro, gdy użytkownik kliknie Anuluj.
Jak działa ten kod?
GetOpenFilename zwraca wybraną ścieżkę, ale sam nie otwiera pliku.
Workbooks.Open otwiera skoroszyt i zwraca obiekt Workbook.
CStr zamienia zwróconą wartość Variant na tekstową ścieżkę.
Najczęstsze błędy
Nie zakładaj, że użytkownik zawsze wybierze plik — obsłuż przycisk Anuluj.
Nie używaj ActiveWorkbook jako jedynego odniesienia po otwarciu pliku; lepiej zachować go w zmiennej wb.
Przy plikach tylko do odczytu możesz potrzebować dodatkowych argumentów Workbooks.Open.