Aquesta macro d'Excel us permet passar una ruta de fitxer per avaluar si el fitxer hi és. Per exemple, és possible que tingueu un procés que manipuli un fitxer en algun lloc del vostre ordinador. Per exemple, és possible que hàgiu d'obrir un llibre de treball existent per afegir-hi dades diàriament. En aquest cas, potser haureu de provar per veure si el fitxer que heu de manipular existeix.
Com funciona la macro
El primer que cal notar d'aquesta macro és que és una funció, no un procediment Sub. Fer d'aquesta macro una funció us permet passar-hi qualsevol ruta de fitxer.
En aquesta macro, utilitzeu la funció Dir, que retorna una cadena que representa el nom del fitxer que coincideix amb el que li passeu. Aquesta funció es pot utilitzar de moltes maneres, però aquí, la feu servir per comprovar si la ruta del fitxer que hi passeu existeix:
La funció FileExists(FPath As String) com a booleà
"Pas 1: declara les teves variables
Dim FName com a cadena
"Pas 2: utilitzeu la funció Dir per obtenir el nom del fitxer
FName = Dir(FPath)
'Pas 3: si el fitxer existeix, retorneu True; altrament Fals
Si FName <> " Aleshores FileExists = True _
Altrament: FileExists = Fals
Funció final
El pas 1 declara una variable String que conté el nom del fitxer que retorna de la funció Dir. FName és el nom de la variable String.
Al pas 2, intenteu establir la variable FName. Això ho feu passant la variable FPath a la funció Dir. Aquesta variable FPath es passa a través de les declaracions de funció (vegeu la primera línia del codi). Aquesta estructura evita que hàgiu de codificar una ruta de fitxer, passant-la com a variable.
Si la variable FName no es pot establir, el camí que heu passat no existeix. Per tant, la variable FName està buida. El pas 3 només tradueix el resultat a una expressió Vertader o Fals.
Una vegada més, aquesta funció es pot utilitzar per avaluar qualsevol ruta de fitxer que hi passeu. Aquesta és la bellesa d'escriure la macro com a funció.
La macro següent mostra com utilitzar aquesta funció:
Sub macro1()
Si FileExists("C:TempMyNewBook.xlsx") = True Aleshores
MsgBox "El fitxer existeix."
Altrament
MsgBox "El fitxer no existeix."
Acaba si
End Sub
Com utilitzar la macro
Per implementar aquesta macro, podeu copiar i enganxar ambdues peces de codi en un mòdul estàndard:
Activeu Visual Basic Editor prement Alt+F11.
Feu clic amb el botó dret al nom del projecte/llibre de treball a la finestra del projecte.
Seleccioneu Insereix → Mòdul.
Escriviu o enganxeu el codi al mòdul acabat de crear.