Funció VBA DIR | Com s'utilitza la funció Excel VBA DIR?

Funció DIR VBA d'Excel

DIR VBA La funció també es coneix com a funció de directori, es tracta d’una funció incorporada a VBA que s’utilitza per donar-nos el nom d’un fitxer determinat o d’una carpeta, però hem de proporcionar el camí per al fitxer, la sortida que retorna aquesta funció és mentre torna el nom del fitxer, hi ha dos arguments per a aquesta funció que són el nom del camí d'accés i els atributs.

La funció DIR retorna el primer nom de fitxer al camí de la carpeta especificat. Per exemple, a la vostra unitat D si teniu un nom de carpeta anomenat 2019 i en aquesta carpeta, si teniu el fitxer excel anomenat "Vendes 2019", podeu accedir a aquest fitxer mitjançant la funció DIR.

La funció "VBA DIR" és molt útil per obtenir el nom del fitxer mitjançant la carpeta de camí d'accés.

Sintaxi

Aquesta funció té dos arguments opcionals.

  • [Nom del camí]: Com diu el nom, quin és el camí d'accés al fitxer. Aquest podria ser també el nom del fitxer, el nom de la carpeta o el directori. Si no hi ha cap camí assignat, tornaré el valor de la cadena buida, és a dir, ""
  • [Atributs]: Aquest també és un argument opcional i és possible que no l’utilitzeu molt sovint a la codificació. Podeu especificar l'atribut del fitxer al fitxer [Nom del camí] i la funció DIR només busca aquests fitxers.

Per exemple: Si voleu accedir només a fitxers ocults, si voleu accedir només a fitxers de només lectura, etc., ho podem especificar en aquest argument. A continuació es mostren els atributs que podem utilitzar.

Exemples per utilitzar la funció VBA DIR

Podeu descarregar aquesta plantilla VBA Dir Excel aquí: plantilla VBA Dir Excel

Exemple 1: accedir al nom del fitxer mitjançant la funció DIR

Us explicaré el senzill exemple d’accedir al nom del fitxer mitjançant la funció DIR. Seguiu els passos següents.

Pas 1: Creeu un nom de macro.

Pas 2: Definiu la variable com Corda.

Codi:

 Sub Dir_Example1 () Atenueu el meu fitxer com a final de cadena Sub 

Pas 3: Ara, per a aquesta variable, assignarem valor mitjançant el fitxer Funció DIR.

Codi:

 Sub Dir_Example1 () Atenueu el meu fitxer com a cadena MyFile = Dir (End Sub 

Pas 4: Ara copieu i enganxeu el fitxer carpeta d'arxius a l’ordinador. Esmenta la via amb cometes dobles.

Codi:

 Sub Dir_Example1 () Dim MyFile As String MyFile = Dir ("E: \ VBA Template End Sub 

Pas 5: He esmentat el meu camí cap a la carpeta, ara també hem d'esmentar el nom del fitxer i la seva extensió. Per fer això, el primer que hem de fer és posar una barra invertida després del camí (\)

Després d’introduir la barra invertida, hem d’entrar a nom complet del fitxer.

Codi:

 Sub Dir_Example1 () Dim MyFile As String MyFile = Dir ("E: \ VBA Template \ VBA Dir Excel Template.xlsm") End Sub 

Pas 6: Mostra el valor de la variable al quadre de missatge.

Codi:

 Sub Dir_Example1 () Dim MyFile As String MyFile = Dir ("E: \ VBA Template \ VBA Dir Excel Template.xlsm") MsgBox MyFile End Sub 

Ara executeu el codi i veureu quin és el resultat del quadre de missatges.

La funció DIR va retornar el nom del fitxer amb l'extensió del fitxer.

Exemple 2: obriu el fitxer mitjançant la funció DIR

Ara com obrim el fitxer? Aquesta funció pot retornar el nom del fitxer, però l'obertura d'aquest fitxer és un procés una mica diferent. Seguiu els passos següents per obrir el fitxer.

Pas 1: Creeu dues variables com Corda.

Codi:

 Sub Dir_Example2 () Atenueu el nom de la carpeta com a cadena Dim el nom del fitxer com a final de la cadena 

Pas 2: Ara per FolderName variable assigna el camí de la carpeta.

Codi:

 Sub Dir_Example2 () Dim Dim FolderName As String Dim File Name As String FolderName = "E: \ VBA Template \" End Sub 

Pas 3: Ara, per a la variable FileName, hem d'obtenir el nom del fitxer mitjançant el fitxer Funció DIR.

Codi:

 Sub Dir_Example2 () Atenuar FolderName as String Dim FileName as String FolderName = "E: \ Plantilla VBA \" FileName = Dir (End Sub 

Pas 4: Ara, per al nom del camí, ja hem assignat un camí a la variable FolderPath, de manera que podem subministrar-la directament aquí.

Codi:

 Sub Dir_Example2 () Dim Dim FolderName As String Dim FileName As String FolderName = "E: \ Plantilla VBA \" FileName = Dir (FolderName End Sub 

Pas 5: Ara hem de proporcionar el nom del fitxer. Mitjançant l’ús del símbol de signe i (&) assigneu el nom del fitxer.

Codi:

 Sub Dir_Example2 () Atenuar FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (FolderName & "VBA Dir Excel Template.xlsm") End Sub 

Pas 6: Ara utilitzeu el fitxer LLIBRES DE TREBALL.OBERT mètode.

Codi:

 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 

Pas 7: El nom del fitxer és una combinació de FolderPath i FileName. Així que combina aquests dos.

Codi:

 Sub Dir_Example2 () Dim Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (FolderName & "VBA Dir Excel Template.xlsm") Workbooks.Open FolderName & FileName End Sub 

Ara executeu aquest codi que obrirà el nom del fitxer esmentat.

Exemple 3: obriu diversos llibres de treball mitjançant la funció DIR

De fet, podem accedir a tots els llibres de la carpeta. Per accedir a tots i cadascun dels fitxers no podem esmentar tots els noms dels fitxers directament, però podem utilitzar el caràcter comodí per referir-lo.

L'asterisc (*) és un d'aquests caràcters comodí. Identifica qualsevol nombre de caràcters. Per exemple, si voleu accedir a tots els fitxers de macro de la carpeta, podeu utilitzar l'asterisc com a comodí, és a dir, "* .Xlsm *"

Aquí * coincidirà amb qualsevol nom de fitxer amb l'extensió del fitxer igual a "xlsm".

Codi:

 Sub Dir_Example3 () Atenuar FolderName as String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (FolderName & "* .xlsm *") Feu-ho mentre que FileName "" Workbooks. ) Subfin. Bucle 

Ara, el codi anterior obrirà tots els fitxers del camí de la carpeta.

FileName = Dir () el motiu pel qual he utilitzat aquesta línia perquè, per accedir al següent fitxer de la carpeta, hem de fer que el nom del fitxer existent sigui nul. En el moment que fem que el nom del fitxer existent sigui nul quan el bucle s’executi per segona vegada, prendrà el següent fitxer a la carpeta.

Exemple # 4: obteniu tots els noms de fitxers a la carpeta

Suposem que si voleu la llista de tots els noms de fitxers de la carpeta, també podem fer-ho mitjançant atributs.

Codi:

 Sub Dir_Example4 () Dim Dim FileName As String FileName = Dir ("E: \ VBA Template \", vbDirectory) Feu-ho mentre depeneu FileName ". Imprimiu FileName = Dir () Bucle End Sub 

Feu visible la finestra immediata prement Ctrl + G.

Ara executeu el codi, obtindrem tots els noms dels fitxers a la finestra immediata.