Dialogo lango naudojimas darbo knygai atidaryti ir išsaugoti

Turinys:

Anonim

Mes jau žinome, kaip atidaryti arba išsaugoti „Excel“ failą VBA. Mes tiesiog naudojame darbo knygos objekto metodą „Open“ ir „SaveAs“. Tačiau tam reikia sunkiai koduoti failo kelią. Tačiau dažniausiai norėsite, kad galutinis vartotojas pasirinktų failą naudodamas GUI arba pasakytų dialogo langą „File Open“ arba „Save As“, kuris leidžia vartotojui vizualiai ir lengvai pasirinkti failo vietą.

Šiame straipsnyje aptariame kodą, naudojamą atidaryti dialogo langą darbaknygėje ir išsaugoti kaip dialogo langą.

Pridedu darbo knygą, kurią galite atsisiųsti. Prie šio straipsnio pridėtoje darbaknygėje yra trys makrokomandos

VBA kodas, skirtas atidaryti failą, naudojant dialogo langą Atidaryti failą

Šiame kode mes naudosime „GetOpenFilename“ taikymo metodą. „GetOpenFilename“ metodo sintaksė yra tokia:

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

[FileFilter]: Galite nustatyti, kad pasirinktame aplanke būtų rodomi tik vienos rūšies failai. Jei rašote „Excel-Files“, *.xlsx, *.xls, *.xlsm ir pan., Tada tik aplanke „Excel“ rodomi failų atidarymo dialogo lango aplankai.

[FilterIndex]:Tai yra failų filtrų, kuriuos norite naudoti, skaičius.

[Pavadinimas]: Dialogo lango pavadinimas.

[ButtonText]:Norėdami nurodyti mygtuko tekstą. Nesvarbu.

[MultiSelect]: Tai loginis kintamasis. Jei nustatysite „True“ arba „1“, galėsite pasirinkti daugiau nei vieną failą. Jei nustatysite klaidingą, galite pasirinkti tik vieną failą.

Užteks teorijos. Padarykime keletą burtų.

VBA kodas, skirtas vienu metu atidaryti vieną failą

Parinktis „Explicit Sub OpenOneFile () Dim FileName as Variant“ Rodomas atviro failo dialogo langas FileName = Application.GetOpenFilename ("Excel-files,*. Xls", _ 1, "Select One File to Open",, False) 'User didn Nepasirinkite failo Jei TypeName (FileName) = "Boolean", tada Exit Sub ' 

Kaip tai veikia?

Kai vykdote šį kodo segmentą, programos objekto „GetOpenFilename“ metodas atidarys dialogo langą Atidaryti failą. Dialogo lango pavadinimas bus „Pasirinkite vieną atidaromą failą“, kaip apibrėžėme kode. Jei pasirinksite failą, darbaknygė. Atidarytas kodas bus paleistas ir failas bus atidarytas. Jei nepasirinksite failo, antrinis elementas išeis nepaleidus darbaknygės. Atidarykite kodą.

VBA kodas, skirtas vienu metu atidaryti vieną ar daugiau failų

Šis kodo segmentas atidarys failo atidarymo dialogo langą, tačiau vienu metu galėsite pasirinkti daugiau nei vieną failą.

Sub OpenMultipleFiles () Dim FileName As Variant, f As Integer 'Atidaryto failo dialogo lango rodymas FileName = Application.GetOpenFilename ("Excel-files,*. Xlsx", _ 1, "Select One or More Files to Open", True ) 'Vartotojas nepasirinko failo Jei TypeName (FileName) = "Boolean" Tada Exit Sub' Atidarykite visas vartotojo pasirinktas darbaknyges For f = 1 To UBound (FileName) Workbooks.Open FileName (f) Next f End Sub 

Atkreipkite dėmesį, kad čia mes pasirinkome kintamąjį pasirinkdami į True. Tai leis kelis kartus pasirinkti failą.

VBA kodas, skirtas atidaryti dialogo langą Išsaugoti kaip

Norėdami atidaryti dialogo langą Įrašyti kaip, naudosime programos objekto metodą GetSaveAsFilename. Metodo sintaksė yra tokia:

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

[InitialFileName]:Pradinis failo pavadinimas. Jei išsaugodami failą nepervardysite, failas bus išsaugotas tokiu pavadinimu.

[FileFilter]: Galite nustatyti, kad pasirinktame aplanke būtų rodomi tik vienos rūšies failai. Jei rašote „Excel-Files“, *.xlsx, *.xls, *.xlsm ir pan., Tada tik aplanke „Excel“ rodomi failų atidarymo dialogo lango aplankai.

[FilterIndex]: Failo filtro indeksas.

[Pavadinimas]:Dialogo lango pavadinimas.

[ButtonText]:Tai naudojama „Mac“ sistemoje mygtuko pavadinimui pakeisti.

Sekite toliau pateiktą kodą

Sub SaveFile () Dim FileName as Variant 'Rodomas dialogo langas Saveas FileName = Application.GetSaveAsFilename ("MyFileName.xls", _ "Excel failai,*. Xls", 1, "Pasirinkite savo aplanką ir failo pavadinimą")' Vartotojas nepadarė ' t išsaugoti failą Jei TypeName (FileName) = "Boolean", tada išeikite iš Sub 'Išsaugoti darbaknygę ActiveWorkbook.SaveAs FileName End Sub 

„SaveFile“ makrokomanda naudoja programos objekto metodą „GetSaveAsFilename“, kad atidarytų dialogo langą „Išsaugoti kaip“, priskiria failo pavadinimą ir pasirenka darbaknygės išsaugojimo vietą.

Taigi taip, vaikinai, taip galite naudoti dialogo langą, norėdami atidaryti ir išsaugoti failus naudodami VBA. Tikiuosi, kad tai buvo naudinga. Jei turite kokių nors abejonių dėl šio straipsnio ar bet kurios kitos VBA temos, paklauskite žemiau esančiame komentarų skyriuje.

Naudokite uždarą darbaknygę kaip duomenų bazę (DAO) naudodami „Microsoft Excel“ VBA | Norėdami naudoti uždarą darbaknygę kaip duomenų bazę su DAO ryšiu, naudokite šį VBA fragmentą „Excel“.

Naudokite uždarą darbaknygę kaip duomenų bazę (ADO) naudodami „Microsoft Excel“ VBA | Norėdami naudoti uždarą darbaknygę kaip duomenų bazę su ADO ryšiu, naudokite šį VBA fragmentą „Excel“.

Darbo su „Excel VBA UserForms“ pradžia | Norėdami įterpti duomenis į duomenų bazę, naudojame formas. „Excel UserForms“ yra naudinga informacijai iš vartotojo gauti. Štai kaip turėtumėte pradėti nuo VBA vartotojo formų.

Pakeiskite kelių „UserForm“ valdiklių vertę/turinį naudodami „Excel“ VBA | Norėdami pakeisti vartotojo formos valdiklių turinį, naudokite šį paprastą VBA fragmentą.

Naudodami „VBA“ programoje „Excel“ neleiskite vartotojo formai užsidaryti, kai naudotojas spustelės x mygtuką | Norėdami neleisti vartotojo formai užsidaryti, kai naudotojas spustelės formos x mygtuką, naudojame įvykį UserForm_QueryClose.

Populiarūs straipsniai:

50 „Excel“ nuorodų, skirtų produktyvumui padidinti | Greičiau atlikite savo užduotį. Šie 50 sparčiųjų klavišų leis dar greičiau dirbti naudojant „Excel“.

„VLOOKUP“ funkcija „Excel“ | Tai yra viena iš dažniausiai naudojamų ir populiariausių „Excel“ funkcijų, naudojama norint ieškoti vertės iš įvairių diapazonų ir lapų.

COUNTIF „Excel 2016“ | Naudodami šią nuostabią funkciją, suskaičiuokite reikšmes su sąlygomis. Norint suskaičiuoti konkrečią vertę, nereikia filtruoti duomenų. Skaitiklio funkcija yra būtina norint paruošti prietaisų skydelį.

Kaip naudoti „SUMIF“ funkciją „Excel“ | Tai dar viena esminė prietaisų skydelio funkcija. Tai padeda apibendrinti vertes konkrečiomis sąlygomis