VBA FileDialog | Paano Buksan ang FilesDialog Box gamit ang VBA Code?

Excel VBA FileDialog

Sa VBA fieldialog ay isang pag-aari na ginagamit upang kumatawan sa iba't ibang mga pagkakataon, sa filesialog mayroong apat na magkakaibang uri ng mga Constant na kilala bilang msofiledialogfilepicker na ginagamit upang pumili ng isang file mula sa isang naibigay na landas sa pangalawang isa ay msofiledialogfolderpicker na nagpapahiwatig ng pangalan na ginagamit upang pumili isang folder at pangatlo ay bukas ang msofiledialog upang buksan ang isang file at ang huli ay msofiledialogsaveas na ginagamit upang makatipid ng isang file bilang isang bagong file.

Mayroong ilang mga pangyayari kung saan nais namin ang data mula sa anumang iba pang file o anumang iba pang worksheet at habang ginagamit ang VBA upang i-automate ang aming trabaho, maaari naming buksan ang iba't ibang mga iba pang mga file gamit ang VBA at ginagawa ito sa pamamagitan ng paggamit ng Filedialog, ang cool na bahagi ng paggamit nito Ang pamamaraan ay hindi namin kailangang ibigay ang landas sa code sa halip hilingin namin sa gumagamit na i-browse ang file.

Bilang bahagi ng proyekto ng VBA, maaaring kailanganin naming buksan ang iba pang mga workbook at magpatupad ng ilang uri ng gawain sa kanila. Sa aming isa sa naunang artikulong "VBA Workbook.Open" ipinakita namin kung paano buksan ang mga file na may tinukoy na landas at tukoy na file. Doon, kailangan naming ibigay ang folder path at pangalan ng file kasama ang extension nito. Ngunit paano kung sa tuwing ang isang gumagamit ay kailangang pumili ng iba't ibang mga file mula sa iba't ibang mga folder. Dito dumarating ang pagpipiliang "FileDialog" sa larawan.

Paano gumagana ang Opsyon ng VBA FileDialog?

"Kung hindi mo alam ang eksaktong landas, mahahanap ka at pipiliin ng FileDialog ng file". Sa halip na banggitin ang path address at pangalan ng file maaari naming ipakita ang isang file na buksan ang window ng dialog nang magkahiwalay upang piliin ang file mula sa anumang folder ng computer.

Maaari mong i-download ang Template ng VBA FileDialog Excel dito - VBA FileDialog Excel Template

"FileDialog" ay isang bagay sa VBA. Upang magamit muna ang pagpipiliang ito kailangan naming tukuyin ang variable bilang FileDialog.

Kapag ang variable ay idineklara bilang "FileDialog" ito ay isang variable ng object. Upang simulang gamitin ito kailangan naming itakda ang object sa pamamagitan ng paggamit ng Application.FileDialog.

Tulad ng nakikita natin sa itaas na larawan FileDialog ay may apat na pagpipilian kasama nito.

  • msoFileDialogFilePicker: Ang pagpipiliang ito ay buksan ang window ng picker ng file sa harap ng gumagamit upang piliin ang nais na file alinsunod sa kanilang nais.
  • msoFileDialogFolderPicker: Ang pagpipiliang ito ay buksan ang kahon ng dayalogo o window sa harap ng gumagamit upang piliin ang Folder.
  • msoFileDialogOpen: Papayagan nito ang gumagamit na buksan ang napiling file mula sa folder.
  • msoFileDialogSaveAs: Papayagan nito ang gumagamit na i-save ang file bilang ibang kopya.

Tulad ng ngayon, pinili ko ang pagpipilian ng msoFileDialogFilePicker.

Ngayon kailangan naming idisenyo ang kahon ng dayalogo na lilitaw sa harap namin.

Gamit ang Gamit na Pahayag maaari naming idisenyo ang dialog box.

Sa loob ng may pahayag maglagay ng isang tuldok upang makita ang listahan ng IntelliSense ng mga katangian at pamamaraan ng pagpipiliang FileDialog.

Upang makita lamang ang mga excel file kapag bumukas ang dialog box ng file kailangan muna naming alisin ang alinman sa mga inilapat na filter.

Ngayon kailangan naming mag-apply ng isang bagong filter bilang "Excel Files" na may wildcard extension ng mga excel file.

Ngayon palitan natin ang pamagat ng file dialog box.

Maaari naming payagan ang gumagamit na pumili lamang ng isang file nang paisa-isa o maaari rin naming payagan silang pumili din ng maraming mga file. Para sa mga ito, kailangan naming gamitin ang "Payagan ang Multi-Select".

Mayroon kaming dalawang pagpipilian dito. Kung napili ang TRUE papayagan nito ang gumagamit na pumili ng maraming mga file kung ito ay ang MALI na gumagamit ay maaaring pumili lamang ng isang file nang paisa-isa.

Ang isa pang bagay na maaari nating idisenyo sa FileDialog ay maaari nating talagang igiit kung ano ang dapat na default na folder kapag lumitaw ang kahon ng dayalogo ng file. Para sa paggamit na ito ng Pangalan ng Pangalan ng File.

Para sa mga ito, kailangan naming banggitin ang default folder upang mabuksan ang path ng address.

Ngayon sa wakas kailangan naming ilapat ang pamamaraang "Ipakita" upang makita ang kahon ng dayalogo ng file.

Code:

 Sub DoEvents_Example1 () Dim Myfile Bilang FileDialog Itakda Myfile = Application.FileDialog (msoFileDialogFilePicker) Sa Myfile .Filters.Clear .Filters.Add ang "Excel Files", "* .xlsx?", 1. Pamagat = "Piliin ang Iyong Excel File !! ! " .AlllMultiSelect = Mali .InitialFileName = "D: \ Excel Files". Ipakita ang End With End Sub 

Patakbuhin ngayon ang VBA code upang makita ang resulta.

Tulad ng nakikita natin sa itaas na kahon ng dialogo ng file ng imahe ay binuksan ang nabanggit na folder bilang default.

Maaari na kaming pumili ng anumang subfold at piliin ang mga excel file.

Tingnan ang imahe sa itaas dahil inilapat namin ang parameter ng filter bilang "Excel Files" lamang.

Pipiliin lamang nito ang file mula sa nabanggit na folder. Upang maiimbak ang buong landas kailangan naming ideklara ang isa pang variable bilang isang string.

Ngayon sa loob ng may pahayag na piliin ang "SelectedItems". Italaga ang napiling path ng folder ng mga item sa bagong tinukoy na variable.

Sa wakas ay ipakita ang napiling path ng folder sa kahon ng mensahe ng VBA.

Ngayon ay tatakbo ko ang programa upang makita ang dialog box.

Napili ko na ngayon ang Pangalan ng File bilang “1. Charts.xlsx "sa subfolder na" Mga Tsart ". Kung mag-click ako sa OK, maaari naming makita ang buong path ng folder sa kahon ng mensahe.

Kaya, tulad nito, maaari naming gamitin ang pagpipiliang FileDialog upang piliin ang mga file mula sa folder sa Excel. Gumamit ng code sa ibaba upang mapili ang mga file.

Code:

 Sub DoEvents_Example1 () Dim Myfile As FileDialog Set Myfile = Application.FileDialog (msoFileDialogFilePicker) Dim FileAddress As String With Myfile .Filters.Clear .Filters.Add "Excel Files", "* .xlsx?", 1 .Pamagat = "Piliin ang Iyong Excel file!!!" .AlllMultiSelect = Mali .InitialFileName = "D: \ Excel Files". Ipakita ang FileAddress = .SelectedItems (1) Tapusin Sa MsgBox FileAddress End Sub