Funkce VBA DIR | Jak používat funkci Excel VBA DIR?
Funkce DIR aplikace Excel VBA
Funkce VBA DIR je také známá jako adresářová funkce, jedná se o vestavěnou funkci ve VBA, která se používá k poskytnutí názvu souboru daného souboru nebo složky, ale musíme poskytnout cestu k souboru, výstup vrácený tímto Funkce je řetězec, protože vrací název souboru, k této funkci existují dva argumenty, kterými jsou název cesty a atributy.
Funkce DIR vrací úplně první název souboru v zadané cestě ke složce. Například na vaší jednotce D, pokud máte název složky s názvem 2019, a v této složce, pokud excelujete soubor s názvem „2019 Sales“, můžete k tomuto souboru přistupovat pomocí funkce DIR.
Funkce „VBA DIR“ je velmi užitečná při získávání názvu souboru pomocí jeho složky s cestou.
Syntax
Tato funkce má dva volitelné argumenty.
- [Název cesty]: Jak název napovídá, jaká je cesta k přístupu k souboru. Může to být také název souboru, název složky nebo adresáře. Pokud není přiřazena žádná cesta, vrátím prázdnou hodnotu řetězce, tj. „“
- [Atributy]: Toto je také volitelný argument a nemusíte jej při kódování používat příliš často. Atribut souboru můžete určit v [Název cesty] a funkce DIR vyhledá pouze tyto soubory.
Například: Pokud chcete přistupovat pouze ke skrytým souborům, chcete-li přistupovat pouze k souborům pouze pro čtení atd. ... můžeme v tomto argumentu určit. Níže jsou atributy, které můžeme použít.
Příklady použití funkce VBA DIR
Tuto šablonu VBA Dir Excel si můžete stáhnout zde - Šablona VBA Dir ExcelPříklad č. 1 - Přístup k názvu souboru pomocí funkce DIR
Vysvětlím vám jednoduchý příklad přístupu k názvu souboru pomocí funkce DIR. Postupujte podle následujících kroků.
Krok 1: Vytvořte název makra.
Krok 2: Definujte proměnnou jako řetězec .
Kód:
Sub Dir_Example1 () Dim MyFile jako řetězec End Sub
Krok 3: Nyní této proměnné přiřadíme hodnotu pomocí funkce DIR .
Kód:
Sub Dir_Example1 () Dim MyFile As String MyFile = Dir (End Sub
Krok 4: Nyní zkopírujte a vložte cestu ke složce souborů do počítače. Uveďte cestu v uvozovkách.
Kód:
Sub Dir_Example1 () Dim MyFile jako řetězec MyFile = Dir ("E: \ VBA Šablona End Sub
Krok 5: Zmínil jsem svou cestu ke složce, nyní musíme zmínit také název souboru a jeho příponu. Abychom to udělali jako první, musíme udělat za cestou zpětné lomítko (\)
Po zadání zpětného lomítka musíme zadat celý název souboru .
Kód:
Sub Dir_Example1 () Dim MyFile As String MyFile = Dir ("E: \ VBA Template \ VBA Dir Excel Template.xlsm") End Sub
Krok 6: Zobrazit hodnotu proměnné v okně se zprávou.
Kód:
Sub Dir_Example1 () Dim MyFile jako řetězec MyFile = Dir ("E: \ VBA Template \ VBA Dir Excel Template.xlsm") MsgBox MyFile End Sub
Nyní spusťte kód a podívejte se, jaký je výsledek pole se zprávou.
Funkce DIR tedy vrátila název souboru s příponou souboru.
Příklad č. 2 - Otevřete soubor pomocí funkce DIR
Jak nyní soubor otevřete? Tato funkce může vrátit název souboru, ale otevření tohoto souboru je trochu jiný proces. Soubor otevřete následujícím způsobem.
Krok 1: Vytvořte dvě proměnné jako řetězec .
Kód:
Sub Dir_Example2 () Dim DimerName jako řetězec Dim DimName jako řetězec End Sub
Krok 2: Nyní pro proměnnou FolderName přiřaďte cestu ke složce.
Kód:
Sub Dir_Example2 () Ztlumit název složky jako řetězec Ztlumit název souboru jako řetězec Název složky = "E: \ VBA Template \" End Sub
Krok 3: Nyní pro proměnnou FileName potřebujeme získat název souboru pomocí funkce DIR .
Kód:
Sub Dir_Example2 () Ztlumit název složky jako řetězec Ztlumit název souboru jako řetězec Název složky = "E: \ VBA Template \" Název souboru = Dir (End Sub
Krok 4: Nyní jsme pro název cesty již přiřadili cestu k proměnné FolderPath, abychom zde mohli přímo zadat proměnnou.
Kód:
Sub Dir_Example2 () Ztlumit název složky jako řetězec Ztlumit název souboru jako řetězec Název složky = "E: \ VBA Template \" Název souboru = Dir (název složky End Sub
Krok 5: Nyní musíme zadat název souboru. Pomocí symbolu ampersand (&) přiřaďte název souboru.
Kód:
Sub Dir_Example2 () Ztlumit název složky jako řetězec Ztlumit název souboru jako řetězec Název složky = "E: \ VBA Template \" FileName = Dir (Název složky & "VBA Dir Excel Template.xlsm") End Sub
Krok 6: Nyní použijte metodu WORKBOOKS.OPEN .
Kód:
Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (FolderName & "VBA Dir Excel Template.xlsm") Workbooks.Open End Sub
Krok 7: Název souboru je kombinací FolderPath & FileName . Kombinujte tedy tyto dva.
Kód:
Sub Dir_Example2 () Ztlumit název složky jako řetězec Ztlumit název souboru jako řetězec Název složky = "E: \ VBA Template \" FileName = Dir (Název složky & "VBA Dir Excel Template.xlsm") Workbooks.Open FolderName & FileName End Sub
Nyní spusťte tento kód a otevře se zmíněný název souboru.
Příklad č. 3 - Otevřete více sešitů pomocí funkce DIR
Ve skutečnosti můžeme přistupovat ke všem sešitům ve složce. Abychom mohli přistupovat ke každému souboru, nemůžeme přímo zmínit všechny názvy souborů, ale k odkazování na soubor můžeme použít zástupný znak.
Hvězdička (*) je jedním z těchto zástupných znaků. Identifikuje libovolný počet znaků. Například pokud chcete získat přístup ke všem souborům maker ve složce, můžete použít hvězdičku jako zástupný znak, tj. „* .Xlsm *“
Zde * bude shoda jakéhokoli názvu souboru s příponou souboru rovna „xlsm“.
Kód:
Sub Dir_Example3 () Ztlumit název složky jako řetězec Ztlumit název složky jako řetězec Název složky = "E: \ VBA Template \" Název souboru = Dir (Název složky & "* .xlsm *") Proveďte Zatímco Název souboru "" Pracovní sešity. Otevřít Název složky a Název souboru Název souboru = Dir ( ) Loop End Sub
Nyní výše uvedený kód otevře všechny soubory v cestě ke složce.
FileName = Dir () důvod, proč jsem použil tento řádek, protože pro přístup k dalšímu souboru ve složce musíme stávající název souboru upravit na nulu. V okamžiku, kdy stávající název souboru nastavíme na nulu, když smyčka běží podruhé, bude trvat další soubor ve složce.
Příklad č. 4 - Získejte všechny názvy souborů ve složce
Předpokládejme, že pokud chcete seznam všech názvů souborů ve složce, můžeme to udělat také pomocí atributů.
Kód:
Sub Dir_Example4 () Dim FileName jako String FileName = Dir ("E: \ VBA Template \", vbDirectory) Do While FileName "" Debug.Print FileName FileName = Dir () Loop End Sub
Okamžité okno zviditelníte stisknutím Ctrl + G.
Nyní spusťte kód, v přímém okně dostaneme všechny názvy souborů.