Știm deja cum să deschidem sau să salvăm un fișier Excel în VBA. Folosim pur și simplu metoda Open și SaveAs a obiectului Workbook. Dar acest lucru necesită o codificare dură a căii fișierului. Dar, de cele mai multe ori, veți dori ca utilizatorul final să selecteze un fișier utilizând GUI sau să spună fișierul Deschidere fișier sau Salvare ca casetă de dialog care permite utilizatorului să aleagă vizual și ușor locația fișierului.
În acest articol, acoperim codul utilizat pentru afișarea casetei de dialog deschise a registrului de lucru și salvăm ca casetă de dialog.
Am atașat un registru de lucru pe care îl puteți descărca. Cartea de lucru atașată acestui articol conține trei macrocomenzi
Codul VBA pentru a deschide fișierul utilizând dialogul Deschidere fișier
În acest cod, vom folosi metoda de aplicare GetOpenFilename. Sintaxa metodei GetOpenFilename este:
Application.GetOpenFilename ([FileFilter], [FilterIndex], [Title], [ButtonText], [MultiSelect])
[FileFilter]: Puteți defini să afișați un singur tip de fișier în dosarul de selectare. Dacă scrieți „Excel-Files, * .xlsx, * .xls, * .xlsm” etc., atunci numai fișierele Excel vor fi afișate din folderul din fereastra de dialog deschisă a fișierului.
[FilterIndex]:Este numărul de filtre de fișiere pe care doriți să le utilizați.
[Titlu]: Titlul casetei de dialog.
[ButtonText]:Pentru specificarea textului butonului. Nu e important.
[Selectare multipla]: Este o variabilă booleană. Dacă îl setați True sau 1, veți putea selecta mai multe fișiere. Dacă îl setați ca fals, nu puteți selecta decât un singur fișier.
Destul de teorie. Să facem niște vrăji.
Cod VBA Pentru a deschide un fișier la un moment dat
Opțiune Explicit Sub OpenOneFile () Dim FileName as Variant 'Afișarea casetei de dialog a fișierului deschis FileName = Application.GetOpenFilename ("Excel-files, *. Xls", _ 1, "Select One File To Open",, False)' User didn Nu selectați un fișier Dacă TypeName (FileName) = "Boolean" Apoi ieșiți din Sub 'Deschideți registrele de lucru. Deschideți FileName End Sub
Cum functioneazã?
Când rulați acest segment de cod, metoda GetOpenFilename pentru obiectul Aplicație va deschide o casetă de dialog Deschidere fișier. Titlul casetei de dialog va fi „Selectați un fișier de deschis” așa cum am definit în cod. Dacă selectați un fișier, atunci va rula codul Worbook.Open și fișierul va fi deschis. Dacă nu selectați un fișier, sub-ul va ieși fără a rula Workbook.Open code.
Cod VBA Pentru a deschide unul sau mai multe fișiere la un moment dat
Acest segment de cod va deschide caseta de dialog pentru deschiderea fișierului, dar veți putea selecta mai multe fișiere simultan.
Sub OpenMultipleFiles () Dim FileName as Variant, f As Integer 'Afișarea casetei de dialog a fișierului deschis FileName = Application.GetOpenFilename ("Excel-files, *. Xlsx", _ 1, "Select One or More Files To Open", True ) 'Utilizatorul nu a selectat un fișier Dacă TypeName (FileName) = "Boolean" Apoi Ieșiți din Sub' Deschideți toate registrele de lucru selectate de utilizator pentru f = 1 la UBound (FileName) Workbooks.Open FileName (f) Next f End Sub
Rețineți că aici am setat variabila multiselect la True. Aceasta va permite selectarea multiplă a fișierului.
Cod VBA pentru a deschide Salvare ca casetă de dialog
Pentru a deschide o casetă de dialog Salvare ca vom folosi metoda GetSaveAsFilename a obiectului Aplicație. Sintaxa metodei este:
Application.GetSaveAsFilename ([InitialFileName], [FileFilter], [FilterIndex], [Title], [ButtonText])
[InitialFileName]:Numele inițial al fișierului. Dacă nu redenumiți fișierul în timp ce îl salvați, fișierul dvs. va fi salvat cu acest nume.
[FileFilter]: Puteți defini să afișați un singur tip de fișier în dosarul de selectare. Dacă scrieți „Excel-Files, * .xlsx, * .xls, * .xlsm” etc., atunci numai fișierele Excel vor fi afișate din folderul din fereastra de dialog deschisă a fișierului.
[FilterIndex]: Indexul filtrului fișierului.
[Titlu]:Titlul casetei de dialog.
[ButtonText]:Acesta este utilizat în sistemul Mac pentru a schimba numele butonului.
Vă rugăm să urmați codul de mai jos
Sub SaveFile () Dim FileName as Variant 'Afișarea casetei de dialog saveas FileName = Application.GetSaveAsFilename ("MyFileName.xls", _ "Excel files, *. Xls", 1, "Select your folder and file name")' User didn ' nu salvați un fișier Dacă TypeName (FileName) = "Boolean" Apoi ieșiți din Sub 'Salvați registrul de lucru ActiveWorkbook.SaveAs FileName End Sub
SaveFile Macro folosește metoda GetSaveAsFilename a obiectului Aplicație pentru a deschide salvare ca casetă de dialog, atribuind numele fișierului și selectând locația pentru salvarea registrului de lucru.
Deci da, băieți, așa puteți folosi caseta de dialog pentru a deschide și salva fișiere folosind VBA. Sper că a fost de ajutor. Dacă aveți îndoieli cu privire la acest articol sau la orice alt subiect VBA, întrebați în secțiunea de comentarii de mai jos.
Utilizați un registru de lucru închis ca bază de date (DAO) utilizând VBA în Microsoft Excel | Pentru a utiliza un registru de lucru închis ca bază de date cu conexiune DAO, utilizați acest fragment VBA în Excel.
Utilizați un registru de lucru închis ca bază de date (ADO) utilizând VBA în Microsoft Excel | Pentru a utiliza un registru de lucru închis ca bază de date cu conexiune ADO, utilizați acest fragment VBA în Excel.
Noțiuni introductive despre Excel VBA UserForms | Pentru a insera date în baza de date, folosim formulare. Formularele de utilizator Excel sunt utile pentru a obține informații de la utilizator. Iată cum ar trebui să începeți cu formele de utilizator VBA.
Modificați valoarea / conținutul mai multor controale UserForm utilizând VBA în Excel | Pentru a schimba conținutul comenzilor formei de utilizator, utilizați acest fragment VBA simplu.
Împiedicați închiderea unui formular de utilizator atunci când utilizatorul face clic pe butonul x folosind VBA în Excel | Pentru a preveni închiderea formei de utilizator atunci când utilizatorul dă clic pe butonul x al formularului, utilizăm evenimentul UserForm_QueryClose.
Articole populare:
50 de comenzi rapide Excel pentru a vă crește productivitatea | Deveniți mai rapid la sarcina dvs. Aceste 50 de comenzi rapide vă vor face să lucrați și mai rapid pe Excel.
Funcția VLOOKUP în Excel | Aceasta este una dintre cele mai utilizate și populare funcții ale Excel, care este utilizată pentru a căuta valoarea din diferite intervale și foi.
COUNTIF în Excel 2016 | Numărați valorile cu condiții folosind această funcție uimitoare. Nu trebuie să vă filtrați datele pentru a număra o anumită valoare. Funcția Countif este esențială pentru a vă pregăti tabloul de bord.
Cum se utilizează funcția SUMIF în Excel | Aceasta este o altă funcție esențială a tabloului de bord. Acest lucru vă ajută să rezumați valori în condiții specifice