Obsah
Na stránkách DIR funkce v VBA zobrazí především adresář nebo soubory z dané složky. Pomocí této funkce lze také vrátit první soubor. Tato funkce má spoustu využití pro získání konkrétních souborů a složek. Stačí jen vložit cestu k souboru do názvu složky VBA kód. Může být obtížnější použít kód VBA DIR Nebojte se, v tomto článku vám ukážeme několik příkladů pro lepší vizualizaci použití kódů. VBA DIR Doufám, že po přečtení článku budete schopni funkci používat. Tak se do toho pusťte.
Stáhnout cvičebnici
Stáhněte si následující cvičebnici. Pomůže vám lépe pochopit látku.
DIR Function.xlsmÚvod do funkce DIR
Shrnutí:
Na stránkách VBA DIR funkce vrací název souboru nebo adresáře ze zadané cesty ke složce. Obvykle vrací první soubor.
Syntaxe:
Dir [ (název cesty, [ atributy ] ) ]
Vysvětlení argumentů:
Argument | Povinné/volitelné | Vysvětlení |
---|---|---|
PathName | Volitelně | Cesta pro přístup a určuje soubor |
Atributy | Volitelně | Konstantní nebo číselný výraz určuje atributy odpovídajících souborů |
Existuje několik předdefinovaných atributů.
Název atributu | Popis |
---|---|
vbNormal | Soubory bez specifických atributů |
vbReadOnly | Soubory pouze pro čtení bez atributů |
vbHidden | Skryté soubory bez atributů |
vbSystem | Systémové soubory bez atributů |
vbVolume | Štítek svazku |
vbDirectory | Adresáře nebo složky bez atributů |
vbAlias | Zadaný název souboru je alias |
7 příkladů použití funkce VBA DIR v aplikaci Excel
Z popisu jste možná pochopili, že se jedná o VBA DIR Funkce poskytne název souboru ze zadaného názvu cesty. Pochopíme ji na příkladu. Zde jsme vytvořili adresář Exceldemy_Folder ukázat různé příklady. V této složce jsou různé malé složky a soubory.
1. Vyhledejte název souboru z cesty
V naší složce můžeme najít konkrétní soubor tak, že deklarujeme cestu k názvu souboru.
Po zkopírování cesty k souboru je třeba spustit kód.
Z tohoto důvodu přejděte na Vývojář karta>> vybrat Visual Basic Pak přejděte na Vložte karta>> vybrat Modul. V Obecné dialogové okno, napíšeme kód.
Protože naším cílem je najít Název souboru z názvu cesty, nastavíme úplný název cesty (od kořene až po soubor) a náš kód bude mít tvar
Sub FileNames() Dim FN As String FN = Dir("E:\Exceldemy\Sales_of_January.xlsx") MsgBox FN End Sub
Zde jsme v našem kódu nastavili název cesty jako E:\Exceldemy\Prodej_z_ledna.xlsx
Rozdělení kódu:
- Na začátku jsme deklarovali řetězcovou proměnnou s názvem FN . A výstup Dir funkce byla uložena do této proměnné.
- Dále Dir funkce vyhledá název souboru a vrátí jej ze zadané cesty.
- Pak se MsgBox nastaví výstup prostřednictvím pole zpráv. MsgBox vrátí výstup pomocí pole zpráv.
- Poté spusťte kód pomocí příkazu F5 klíč.
Nakonec jsme našli soubor s názvem Tržby_z_ledna.xlsx .
2. Zkontrolujte existenci adresáře
Existenci adresáře můžeme ověřit pomocí příkazu Dir Napišme kód, který zkontroluje, zda je funkce Exceldemy Do obecného pole zapište následující kód a spusťte jej pomocí příkazu F5 klíč.
Sub CheckFile() Dim PN As String Dim File As String PN = "E:\Exceldemy" File = Dir(PN, vbDirectory) If File "" Then MsgBox File & " exists" Else MsgBox "The file doesn't exist" End If End Sub
Rozdělení kódu:
- Deklarovali jsme dvě proměnné; PN obsahuje úplný název cesty našeho kontrolního adresáře.
- Zde v rámci Dir jsme nastavili dvě hodnoty, název cesty a hodnotu atributu jako vbDirectory . Tato hodnota atributu pomůže zjistit adresář. A výstup této funkce je uložen v adresáři Soubor variabilní.
- Poté jsme zkontrolovali, zda je proměnná prázdná, nebo ne. Pokud jsme zjistili, že proměnná není, pak jsme existenci adresáře deklarovali prostřednictvím okna se zprávou, v opačném případě návrat neexistuje.
Zde se Exceldemy adresář existuje, takže najdeme " Exceldemy existuje ", kde Exceldemy je název složky.
3. Vytvoření neexistující složky
Můžete vytvořit složku, která ve vašem počítači neexistuje. K tomu je třeba vytvořit název cesty, který ve vašich složkách neexistuje. Představme si, že vytvoříme adresář s názvem Exceldemy_1 . Použijeme MkDir vytvořit adresář, ale ještě předtím musíme napsat následující příkaz VBA kód.
Sub CheckFile() Dim PN As String Dim File As String PN = "E:\Exceldemy_1" File = Dir(PN, vbDirectory) If File "" Then MsgBox File & " Složka souboru existuje" Else MkDir PN MsgBox "Byla vytvořena složka souboru s názvem" & File End If End Sub
Zde jsme napsali příkaz pro vytvoření adresáře pomocí názvu cesty z příkazu Jinak našeho kódu. Spustit kód s F5 klíč.
Adresář byl vytvořen. Podívejme se na složku adresáře. Exceldemy_1 je nyní v počítači viditelná.
Podobné čtení:
- Jak zavolat podřízený program ve VBA v aplikaci Excel (4 příklady)
- Vrácení hodnoty ve funkci VBA (pole i jiné hodnoty)
- Použití funkce VBA UCASE v aplikaci Excel (4 příklady)
- Jak používat funkci TRIM ve VBA v aplikaci Excel (definice + kód VBA)
4. Vyhledání prvního souboru z adresáře
Hlavním úkolem Dir Funkce má za úkol najít první soubor v zadaném adresáři. Stačí zadat název cesty (až po adresář kontejneru) a funkce vrátí první soubor z tohoto adresáře.
Najděme první soubor z našeho Exceldemy adresář. Náš kód bude
Sub FirstFileinFolder() Dim FN As String Dim PN As String PN = "E:\Exceldemy\" FN = Dir(PN) MsgBox "První soubor: " & FN End Sub
Základní kód vidíte na obrázku; předali jsme název cesty do příkazu Dir funkce. Nyní Spustit kód s F5 najdete první soubor v tomto adresáři.
5. Vyhledání všech souborů z adresáře
V předchozí části jsme si ukázali, jak najít první název souboru z adresáře. Může nastat situace, kdy potřebujete najít všechny soubory z určitého adresáře. Chcete-li najít všechny soubory v určitém adresáři, musíte napsat následující příkaz VBA kód.
Sub AllFile() Dim FN As String Dim FL As String FN = Dir("E:\Exceldemy\") Do While FN "" FL = FL & vbNewLine & FN FN = Dir() Loop MsgBox ("Seznam souborů:" & FL) End Sub
Zde jsou dvě proměnné pro uložení názvů souborů jako jediné ( FN ) a jako seznam ( FL ). Do While smyčka iteruje až do okamžiku, kdy v adresáři nezůstane žádný soubor, a pomocí této smyčky vložíme každý název souboru do adresáře FL variabilní.
Spusťte kód a najdete všechny soubory v adresáři, jako na obrázku níže.
6. Vyhledání všech souborů a složek z adresáře
V předchozí části jsme se zmínili o tom, kde najdeme všechny soubory. Můžeme také najít všechny podsložky ve složce. Za tímto účelem napište následující příkaz. VBA kód, který přikládáme níže.
Sub AllFileFolders() Dim AN As String Dim Lst As String AN = Dir("E:\Exceldemy_Folder\", vbDirectory) Do While AN "" Lst = Lst & vbNewLine & AN AN = Dir() Loop MsgBox ("File Lst:" & Lst) End Sub
Změna v našem kódu spočívá pouze v použití parametrů atributů. Použili jsme parametr vbDirectory v této oblasti. Spustit kódu a najdete všechny soubory a podsložky Exceldemy_Folder .
7. Vyhledání všech souborů určitého typu
Použití VBA Dir můžeme najít jakýkoli konkrétní typ souboru. Prozkoumejme to na příkladu.
Najdeme .csv Náš kód bude vypadat následovně.
Sub SpecialTypeFiles() Dim FL As String Dim FN As String FN = Dir("E:\Exceldemy_Folder\Exceldemy\*.csv") Do While FN "" FL = FL & vbNewLine & FN FN = Dir() Loop MsgBox ("Seznam souborů .csv:" & FL) End Sub
Doufáme, že jste pochopili kód, který používá podobný mechanismus pro vyhledávání souborů. V názvu cesty jsme použili zástupný znak ( * ). Tato hvězdička (*) znamená, že se může vyskytovat jakýkoli znak až do libovolného čísla. Zástupný znak byl použit tak, že název souboru může být jakýkoli, ale musí být .csv soubor.
Po spuštění kódu se vrátí kód .csv soubory z naší Exceldemy adresář.
Praktická část
Na každém listu na pravé straně jsme pro vás připravili část pro procvičování. Provádějte ji prosím sami.
Závěr
To je vše o dnešním sezení. A to jsou některé jednoduché příklady. VBA Dir funkce v aplikaci Excel. Pokud máte nějaké dotazy nebo návrhy, dejte nám vědět v komentářích. Pro lepší pochopení si stáhněte cvičný list. Navštivte naše webové stránky, Exceldemy , komplexního poskytovatele řešení Excel, abyste se dozvěděli o rozmanitých druzích metod Excelu. Děkujeme za vaši trpělivost při čtení tohoto článku.