Pag-andar ng VBA DIR | Paano gamitin ang Excel VBA DIR Function?
Pag-andar ng Excel VBA DIR
VBA DIR Ang pagpapaandar ay kilala rin bilang pagpapaandar ng direktoryo, ito ay isang built-in na pag-andar sa VBA na ginagamit upang bigyan kami ng pangalan ng file ng isang naibigay na file o isang folder ngunit kailangan naming ibigay ang landas para sa file, ang output na ibinalik ng pagpapaandar na ito ay string habang binabalik nito ang pangalan ng file, mayroong dalawang mga argumento sa pagpapaandar na ito na kung saan ay ang pangalan ng path at mga katangian.
Ibinabalik ng pagpapaandar ng DIR ang pinakaunang pangalan ng file sa tinukoy na path ng folder. Halimbawa, sa iyong D Drive kung mayroon kang isang pangalan ng folder na tinawag na 2019 at sa folder na iyon, kung mag-excel ka ng file na pinangalanang "2019 Sales" pagkatapos ay ma-access mo ang file na ito sa pamamagitan ng paggamit ng DIR function.
Ang pagpapaandar ng "VBA DIR" ay kapaki-pakinabang sa pagkuha ng pangalan ng file sa pamamagitan ng paggamit ng path folder nito.
Syntax
Ang pagpapaandar na ito ay may dalawang opsyonal na mga argumento.
- [Pangalan ng Landas]: Tulad ng sinabi ng pangalan kung ano ang landas upang ma-access ang file. Maaaring ito ang pangalan ng file, pangalan ng folder, o direktoryo din. Kung ang anumang landas ay hindi naitalaga babalik ako ng walang laman na halaga ng string ie “”
- [Mga Katangian]: Ito rin ay isang opsyonal na argumento at maaaring hindi mo ito madalas gamitin sa pag-coding. Maaari mong tukuyin ang katangian ng file sa [Pangalan ng Landas] at ang function ng DIR ay naghahanap para lamang sa mga file na iyon.
Halimbawa: Kung nais mong i-access lamang ang mga nakatagong mga file, kung nais mong i-access ang mga read-only file lamang atbp ... maaari naming tukuyin sa argumentong ito. Nasa ibaba ang mga katangian na maaari naming magamit.
Mga halimbawa upang magamit ang VBA DIR Function
Maaari mong i-download ang VBA Dir Excel Template na ito dito - VBA Dir Excel TemplateHalimbawa # 1 - Pag-access sa Pangalan ng File gamit ang DIR Function
Ipapaliwanag ko sa iyo ang simpleng halimbawa ng pag-access sa pangalan ng file gamit ang pagpapaandar ng DIR. Sundin ang mga hakbang sa ibaba.
Hakbang 1: Lumikha ng isang pangalan ng macro.
Hakbang 2: Tukuyin ang variable bilang String.
Code:
Sub Dir_Example1 () Madilim ang MyFile Bilang String End Sub
Hakbang 3: Ngayon para sa variable na ito, magtatalaga kami ng halaga sa pamamagitan ng paggamit ng Pagpapaandar ng DIR.
Code:
Sub Dir_Example1 () Madilim ang MyFile Bilang String MyFile = Dir (End Sub
Hakbang 4: Ngayon kopyahin at i-paste ang folder ng file landas sa iyong computer. Nabanggit ang pathname sa mga dobleng quote.
Code:
Sub Dir_Example1 () Madilim ang MyFile Bilang String MyFile = Dir ("E: \ VBA Template End Sub
Hakbang 5: Nabanggit ko ang aking landas sa folder, ngayon kailangan naming banggitin ang pangalan ng file at ang extension din nito. Upang magawa ang unang bagay na kailangan nating gawin ay kailangan nating maglagay ng backslash pagkatapos ng landas (\)
Matapos ipasok ang backslash kailangan nating ipasok ang buong pangalan ng file.
Code:
Sub Dir_Example1 () Madilim ang MyFile Bilang String MyFile = Dir ("E: \ VBA Template \ VBA Dir Excel Template.xlsm") End Sub
Hakbang 6: Ipakita ang halaga ng variable sa kahon ng mensahe.
Code:
Sub Dir_Example1 () Madilim ang MyFile Bilang String MyFile = Dir ("E: \ VBA Template \ VBA Dir Excel Template.xlsm") MsgBox MyFile End Sub
Patakbuhin ngayon ang code at tingnan kung ano ang resulta ng kahon ng mensahe.
Kaya't naibalik ng pagpapaandar ng DIR ang pangalan ng file kasama ang extension ng file.
Halimbawa # 2 - Buksan ang File sa pamamagitan ng paggamit ng DIR Function
Ngayon paano namin buksan ang file? Ang function na ito ay maaaring ibalik ang pangalan ng file ngunit ang pagbubukas ng file na iyon ay medyo magkakaibang proseso. Sundin ang mga hakbang sa ibaba upang buksan ang file.
Hakbang 1: Lumikha ng dalawang variable bilang String.
Code:
Sub Dir_Example2 () Dim FolderName Bilang String Dim FileName Bilang String End Sub
Hakbang 2: Ngayon para sa Pangalan ng Folder variable italaga ang folder path.
Code:
Sub Dir_Example2 () Dim FolderName Bilang String Dim FileName Bilang String FolderName = "E: \ VBA Template \" End Sub
Hakbang 3: Ngayon para sa variable ng FileName, kailangan nating makuha ang pangalan ng file sa pamamagitan ng paggamit ng Pagpapaandar ng DIR.
Code:
Sub Dir_Example2 () Dim FolderName Bilang String Dim FileName Bilang String FolderName = "E: \ VBA Template \" FileName = Dir (End Sub
Hakbang 4: Ngayon para sa Pangalan ng Path nakatalaga na kami ng isang landas sa variable na FolderPath, kaya maaari naming direktang ibigay ang variable dito.
Code:
Sub Dir_Example2 () Dim Dim FolderName Bilang String Dim FileName Bilang String FolderName = "E: \ VBA Template \" FileName = Dir (FolderName End Sub
Hakbang 5: Ngayon kailangan naming ibigay ang pangalan ng file. Sa pamamagitan ng paggamit ng simbolo ng ampersand (&) italaga ang pangalan ng file.
Code:
Sub Dir_Example2 () Dim FolderName Bilang String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (FolderName & "VBA Dir Excel Template.xlsm") End Sub
Hakbang 6: Ngayon gamitin ang WORKBOOKS.BUKSAN paraan
Code:
Sub Dir_Example2 () Dim FolderName Bilang String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (FolderName & "VBA Dir Excel Template.xlsm") Mga Workbook. Buksan ang End Sub
Hakbang 7: Ang Pangalan ng File ay isang kumbinasyon ng FolderPath at FileName. Kaya pagsamahin ang dalawang ito.
Code:
Sub Dir_Example2 () Dim Dim FolderName Bilang String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (FolderName & "VBA Dir Excel Template.xlsm") Mga Workbook. Buksan ang FolderName at FileName End Sub
Ngayon patakbuhin ang code na ito bubuksan nito ang nabanggit na pangalan ng file.
Halimbawa # 3 - Buksan ang Maramihang Mga Workbook gamit ang DIR Function
Sa totoo lang, maaari nating ma-access ang lahat ng mga workbook sa folder. Upang ma-access ang bawat isa at bawat file hindi namin maaaring banggitin ang lahat ng mga pangalan ng file nang direkta, ngunit maaari naming gamitin ang character na wildcard upang i-refer ang file.
Ang asterisk (*) ay isa sa mga wildcard character. Kinikilala nito ang anumang bilang ng mga character. Halimbawa, kung nais mong ma-access ang lahat ng mga Macro file sa folder maaari mong gamitin ang asterisk bilang wildcard i.e. "* .Xlsm *"
Dito * tutugma ang anumang pangalan ng file na may extension ng file na katumbas ng "xlsm".
Code:
Sub Dir_Example3 () Dim FolderName Bilang String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (FolderName & "* .xlsm *") Gawin Habang FileName "" Mga Workbook. Buksan ang FolderName at FileName FileName = Dir ( ) Loop End Sub
Ngayon ang code sa itaas ay magbubukas ng lahat ng mga file sa folder path.
FileName = Dir () ang dahilan kung bakit ginamit ko ang linyang ito sapagkat, upang ma-access ang susunod na file sa folder, kailangan naming gawin ang umiiral na pangalan ng file sa nil. Sa sandaling gagawin namin ang umiiral na pangalan ng file sa wala kapag tumatakbo ang loop sa pangalawang pagkakataon ay kukuha ito ng susunod na file sa folder.
Halimbawa # 4 - Kunin ang lahat ng Mga Pangalan ng File sa Folder
Ipagpalagay kung nais mo ang listahan ng lahat ng mga pangalan ng file sa folder maaari din natin itong gawin sa pamamagitan ng paggamit ng mga katangian.
Code:
Sub Dir_Example4 () I-dim ang FileName Bilang String FileName = Dir ("E: \ VBA Template \", vbDirectory) Gawin Habang FileName "" Debug. I-print ang FileName FileName = Dir () Loop End Sub
Gawing nakikita ang agarang window sa pamamagitan ng pagpindot Ctrl + G.
Patakbuhin ngayon ang code makukuha natin ang lahat ng mga pangalan ng file sa agarang window.