Nëse procedura juaj VBA duhet të kërkojë nga përdoruesi një emër skedari, ju mund të përdorni funksionin InputBox dhe ta lini përdoruesin e Excel të bëjë disa shtypje. Një kuti hyrëse zakonisht nuk është mjeti më i mirë për këtë punë, megjithatë, sepse shumica e përdoruesve e kanë të vështirë të mbajnë mend shtigjet, prerjet e pasme, emrat e skedarëve dhe shtesat e skedarëve. Me fjalë të tjera, është shumë e lehtë të prishësh kur shkruani një emër skedari.
Për një zgjidhje më të mirë të këtij problemi, përdorni metodën GetOpenFilename të objektit Application, e cila siguron që kodi juaj të marrë në dorë një emër skedari të vlefshëm, duke përfshirë rrugën e tij të plotë. Metoda GetOpenFilename shfaq kutinë e njohur të dialogut Open (një zile e vdekur për kutinë e dialogut Excel shfaqet kur zgjidhni Skedar → Hap → Shfleto).
Metoda GetOpenFilename në fakt nuk e hap skedarin e specifikuar. Kjo metodë thjesht kthen emrin e skedarit të zgjedhur nga përdoruesi si një varg. Pastaj mund të shkruani kod për të bërë çfarë të doni me emrin e skedarit.
Sintaksa për metodën GetOpenFilename
Sintaksa zyrtare e metodës GetOpenFilename është si më poshtë:
objekt.GetOpenFilename ([fileFilter], [filterIndex],
[titulli], [Teksti i butonit], [MultiSelect])
Metoda GetOpenFilename merr argumentet opsionale më poshtë.
Argumenti |
Çfarë bën |
Filter File |
Përcakton llojet e skedarëve që shfaqen në kutinë e dialogut
(për shembull, *.TXT). Ju mund të specifikoni disa filtra që përdoruesi
të zgjedhë. |
Indeksi i filtrit |
Përcakton se cili prej skedarëve filtron kutia e dialogut shfaqet si
parazgjedhje. |
Titulli |
Specifikon titullin për
shiritin e titullit të kutisë së dialogut . |
ButtonText |
I injoruar (përdoret vetëm për versionin Macintosh të Excel). |
Shumëzgjedhja |
Nëse është e vërtetë, përdoruesi mund të zgjedhë skedarë të shumtë. |
Një shembull GetOpenFilename
Argumenti fileFilter përcakton se çfarë shfaqet në listën rënëse Files of Type të kutisë së dialogut. Ky argument përbëhet nga çifte vargjesh të filtrit të skedarëve të ndjekur nga specifikimi i filtrit të skedarit të shkronjave, me presje që ndajnë secilën pjesë dhe çift. Nëse hiqet, ky argument paracaktohet si vijon:
Te gjitha dokumentet (*.*), *.*
Vini re se ky varg përbëhet nga dy pjesë, të ndara me presje:
Te gjitha dokumentet (*.*)
dhe
*.*
Pjesa e parë e këtij vargu është teksti i shfaqur në listën rënëse Files of Type. Pjesa e dytë përcakton se cilët skedarë shfaq kutia e dialogut. Për shembull, *.* do të thotë të gjithë skedarët.
Kodi në shembullin e mëposhtëm hap një kuti dialogu që i kërkon përdoruesit një emër skedari. Procedura përcakton pesë filtra skedarësh. Vini re se sekuenca e vazhdimit të linjës VBA përdoret për të vendosur ndryshoren Filter; duke bërë këtë ndihmon në thjeshtimin e këtij argumenti mjaft të ndërlikuar.
Nën GetImportFileName ()
Dim Finfo As String
Zbehja e indeksit të filtrit për aq kohë sa
Titulli i zbehtë si varg
Emri i skedarit zbeh si variant
Krijoni listën e filtrave të skedarëve
FIinfo = "Skedarët e tekstit (*.txt),*.txt", & _
"Skedarët Lotus (*.prn),*.prn," & _
"Skedarët e ndarë me presje (*.csv),*.csv," & _
"Skedarët ASCII (*.asc),*.asc," & _
"Te gjitha dokumentet (*.*),*.*"
' Shfaq *.* si parazgjedhje
Indeksi i filtrit = 5
' Cakto titullin e kutisë së dialogut
Titulli = "Zgjidh një skedar për të importuar"
' Merr emrin e skedarit
Emri i skedarit = Application.GetOpenFilename (FInfo, _
FilterIndex, Titulli)
' Trajtoni informacionin e kthimit nga kutia e dialogut
Nëse Emri i Skedarit = False Atëherë
MsgBox "Nuk u zgjodh asnjë skedar."
Përndryshe
MsgBox "Zgjodheve" & Emri i skedarit
Fundi Nëse
Fundi Nën
Këtu është kutia e dialogut që shfaqet Excel kur ekzekutoni këtë procedurë. Pamja mund të ndryshojë, në varësi të versionit të Windows që përdorni dhe opsioneve të ekranit që keni vendosur.
Metoda GetOpen Filename shfaq një kuti dialogu të personalizueshme dhe kthen shtegun dhe emrin e skedarit të zgjedhur. Nuk e hap skedarin.
Në një aplikacion të vërtetë, do të bënit diçka më kuptimplote me emrin e skedarit. Për shembull, mund të dëshironi ta hapni atë duke përdorur një deklaratë të tillë si kjo:
Librat e punës.Hap Emri i Skedarit
Vini re se ndryshorja FileName është deklaruar si lloj i të dhënave Variant. Nëse përdoruesi klikon Cancel, ajo variabël përmban një vlerë Boolean (False). Përndryshe, emri i skedarit është një varg. Prandaj, përdorimi i një lloji të të dhënave Variant trajton të dyja mundësitë.