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 function is string as it returns the name of the file, there are two arguments to which the path name and the attributes.

Funkce DIR vrací úplně první název souboru v zadané cestě ke složce. Například na vaší D Drive, 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“, pak k tomuto souboru můžete 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 při kódování jej možná příliš často nepoužíváte. 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 jen pro čtení atd. … můžeme v tomto argumentu zadat. Níže jsou atributy, které můžeme použít.

Příklady použití funkce VBA DIR

Pří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 () Dim DimNameName jako String Dim FileName jako String FolderName = "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 () Dim DimNameName jako String Dim FileName jako String FolderName = "E: VBA Template " FileName = Dir (FolderName & "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. Otevře se uvedený název souboru.

Příklad č. 3 - Více otevřených sešitů pomocí funkce DIR

Ve skutečnosti můžeme přistupovat ke všem sešitům ve složce. Abychom měli přístup ke každému souboru, nemůžeme přímo zmínit všechny názvy souborů, ale k odkazu 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() Dim FolderName As String Dim FileName As String FolderName = "E:VBA Template " FileName = Dir(FolderName & "*.xlsm*") Do While FileName "" Workbooks.Open FolderName & FileName FileName = Dir() Loop End Sub

Now the above code will open all the files in the folder path.

FileName = Dir() the reason why I have used this line because, in order to access the next file in the folder, we have to make the existing file name to nil. The moment we make the existing file name to nil when the loop runs for the second time, it will take the next file in the folder.

Example #4 - Get all the File Names in the Folder

Suppose if you want the list of all the file names in the folder, we can also do this by using attributes.

Code:

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 okamžitém okně dostaneme všechny názvy souborů.

Zajímavé články...