VBA FileDialog | Kā atvērt FilesDialog Box, izmantojot VBA kodu?

Excel VBA FileDialog

VBA laukā logs ir īpašums, ko izmanto, lai attēlotu dažādus gadījumus. Filedialog ir četri dažādi konstanšu veidi, kurus sauc par msofiledialogfilepicker, kurus izmanto, lai izvēlētos failu no norādītā ceļa, otrais ir msofiledialogfolderpicker, kura nosaukums liecina, ka tiek izmantots mape un trešā ir atvērta, lai atvērtu failu, un pēdējā ir msofiledialogsaveas, kas tiek izmantota faila saglabāšanai kā jauns fails.

Pastāv noteikti apstākļi, kad mēs vēlamies iegūt datus no jebkura cita faila vai jebkuras citas darblapas, un, tā kā VBA tiek izmantota mūsu darba automatizēšanai, mēs varam atvērt dažādus citus failus, izmantojot VBA, un tas tiek darīts, izmantojot Filedialog, kas ir lieliska šīs izmantošanas daļa. metode ir tāda, ka mums nav jānorāda ceļš uz kodu, tā vietā mēs lūdzam lietotāju pārlūkot failu.

VBA projekta ietvaros mums var būt nepieciešams atvērt citas darbgrāmatas un ar tām izpildīt sava veida uzdevumus. Vienā no iepriekšējiem rakstiem “VBA Workbook.Open” mēs parādījām, kā atvērt failus ar norādītu ceļu un konkrētu failu. Tur mums vajadzēja piegādāt mapes ceļu un faila nosaukumu ar tā paplašinājumu. Bet ko tad, ja katru reizi, kad lietotājam ir jāizvēlas dažādi faili no dažādām mapēm. Šeit attēlā parādās opcija “FileDialog”.

Kā darbojas VBA FileDialog Option?

"Ja jūs nezināt precīzu ceļu, FileDialog atradīs un atlasīs jums failu". Tā vietā, lai pieminētu ceļa adresi un faila nosaukumu, mēs varam atsevišķi parādīt faila atvēršanas dialoglodziņu, lai atlasītu failu no jebkuras datora mapes.

Šo VBA FileDialog Excel veidni varat lejupielādēt šeit - VBA FileDialog Excel veidne

“FileDialog” ir objekts VBA. Lai vispirms izmantotu šo opciju, mainīgais ir jānosaka kā FileDialog.

Kad mainīgais ir deklarēts kā “FileDialog”, tas ir objekta mainīgais. Lai sāktu to izmantot, mums ir jāiestata objekts, izmantojot programmu Application.FileDialog.

Kā redzams augšējā attēlā, FileDialog ir četras iespējas.

  • msoFileDialogFilePicker: Šī opcija atver faila atlasītāja logu lietotāja priekšā, lai izvēlētos vajadzīgo failu atbilstoši viņu vēlmēm.
  • msoFileDialogFolderPicker: šī opcija atver lietotāja priekšā esošo dialoglodziņu vai logu, lai atlasītu mapi.
  • msoFileDialogOpen: Tas ļaus lietotājam atvērt atlasīto failu no mapes.
  • msoFileDialogSaveAs: Tas ļaus lietotājam saglabāt failu kā citu kopiju.

No šī brīža esmu izvēlējies opciju msoFileDialogFilePicker.

Tagad mums jāveido dialoglodziņš, kas parādās mūsu priekšā.

Izmantojot With Statement, mēs varam izveidot dialoglodziņu.

Ar paziņojumu ievietojiet punktu, lai redzētu IntelliSense opcijas FileDialog īpašību un metožu sarakstu.

Lai atvērtu failu dialoglodziņu, lai redzētu tikai Excel failus, mums vispirms ir jānoņem visi izmantotie filtri.

Tagad mums jāpielieto jauns filtrs kā “Excel faili” ar aizstājējzīmi Excel failos.

Tagad mainīsim faila dialoglodziņa nosaukumu.

Mēs varam atļaut lietotājam vienlaikus atlasīt tikai vienu failu vai arī ļaut viņiem atlasīt arī vairākus failus. Lai to izdarītu, mums jāizmanto “Allow Multi-Select”.

Mums šeit ir divas iespējas. Ja ir atlasīta PATIESA, tā ļaus lietotājam atlasīt vairākus failus, ja FALSE lietotājs vienlaikus var atlasīt tikai vienu failu.

Vēl viena lieta, ko mēs varam izstrādāt, izmantojot FileDialog, ir tā, ka mēs faktiski varam uzstāt, kādai jābūt noklusējuma mapei, kad parādās faila dialoglodziņš. Šim lietojumam sākotnējais faila nosaukums.

Lai to izdarītu, mums jāpiemin noklusējuma mape, kas jāatver adreses ceļš.

Visbeidzot, lai redzētu faila dialoglodziņu, mums jāpiemēro metode “Rādīt”.

Kods:

Sub DoEvents_Example1 () Dim Myfile As FileDialog Set Myfile = Application.FileDialog (msoFileDialogFilePicker) With Myfile .Filters.Clear .Filters.Add "Excel Files", "* .xlsx?", 1 .Title = "Izvēlieties savu Excel failu !! ! " .AllowMultiSelect = False .InitialFileName = "D: \ Excel Files". Rādīt beigas ar beigu apakšdaļu

Tagad palaidiet VBA kodu, lai redzētu rezultātu.

Kā redzams iepriekš attēlā faila dialoglodziņš pēc noklusējuma ir atvēris minēto mapi.

Tagad mēs varam atlasīt jebkuru apakšmapi un atlasīt Excel failus.

Apskatiet iepriekšējo attēlu, jo filtra parametru esam lietojuši tikai kā “Excel faili”.

Tas vienkārši atlasīs failu no minētās mapes. Lai saglabātu pilnu ceļu, mums jādeklarē vēl viens mainīgais kā virkne.

Tagad ar priekšrakstu atlasiet “SelectedItems”. Piešķiriet izvēlēto vienumu mapes ceļu jaunizveidotajam mainīgajam.

Tagad beidzot parādiet atlasīto mapes ceļu VBA ziņojumu lodziņā.

Tagad es palaidīšu programmu, lai redzētu dialoglodziņu.

Tagad faila nosaukumu esmu izvēlējies kā “1. Charts.xlsx ”apakšmapē“ Charts ”. Ja noklikšķinu uz Labi, ziņojumu lodziņā varam redzēt pilnu mapes ceļu.

Tātad, tāpat kā šis, mēs varam izmantot opciju FileDialog, lai atlasītu failus no mapes programmā Excel. Izmantojiet zem koda, lai atlasītu failus.

Kods:

Sub DoEvents_Example1 () Dim Myfile kā FileDialog Set Myfile = Application.FileDialog (msoFileDialogFilePicker) Dim FileAddress kā virkne ar Myfile .Filters.Clear .Filters.Add "Excel Files", "* .xlsx?", 1 .Title = "Izvēlieties savu Excel fails !!! " .AllowMultiSelect = False .InitialFileName = "D: \ Excel Files". Parādīt FileAddress = .SelectedItems (1) Beigt ar MsgBox FileAddress End Sub

$config[zx-auto] not found$config[zx-overlay] not found