VBA Cambiar nombre de archivo (Cómo + 5 ejemplos de código)

Índice
  1. Cambiar el nombre de un archivo VBA
    1. Ejemplo 1: cambiar el nombre de un archivo
    2. Ejemplo 2: cambiar el nombre de un archivo según los valores de celda
    3. Ejemplo 3: mover un archivo con el comando Nombre
    4. Ejemplo 4: evitar errores al cambiar el nombre de archivos
    5. Ejemplo 5: función reutilizable
  2. Posibles errores
  3. Notas sobre cómo cambiar el nombre de archivos

VBA en Excel no nos restringe a una sola aplicación. VBA también nos da acceso al entorno de Windows. Con esto podremos realizar un montón de acciones comunes basadas en archivos. Uno de los más comunes es cambiar el nombre de un archivo. En esta publicación, veremos 5 ejemplos de cómo cambiar el nombre de archivos con VBA.

Tabla de contenido
  • Cambiar el nombre de un archivo VBA
    • Ejemplo 1: cambiar el nombre de un archivo
    • Ejemplo 2: cambiar el nombre de un archivo según los valores de celda
    • Ejemplo 3: mover un archivo con el comando Nombre
    • Ejemplo 4: evitar errores al cambiar el nombre de archivos
    • Ejemplo 5: función reutilizable
  • Posibles errores
  • Notas sobre cómo cambiar el nombre de archivos

Cambiar el nombre de un archivo VBA

Para cambiar el nombre de un archivo con VBA usamos el comando Nombre. El nombre aparece en azul porque es una palabra reservada dentro de VBA.

Ejemplo 1: cambiar el nombre de un archivo

Este ejemplo cambia el nombre de un archivo de Archivo de ejemplo.xlsx a Archivo de ejemplo renombrado.xlsx.

Sub VBARenameFile()Name "C:UsersmarksDocumentsExample File.xlsx" As _    "C:UsersmarksDocumentsExample File Renamed.xlsx"End Sub

Ejemplo 2: cambiar el nombre de un archivo según los valores de celda

En este ejemplo, cambiamos el nombre de un archivo según los valores de las celdas. La siguiente captura de pantalla muestra el nombre del archivo actual en la celda C2 y el nuevo nombre del archivo en la celda C4 .

Ejemplo: cambiar el nombre del archivo VBA

Podemos ejecutar la siguiente macro para cambiar el nombre de un archivo usando estos valores de celda.

Sub VBARenameFileSheetNames()Name ActiveSheet.Range("C2") As _  ActiveSheet.Range("C4")End Sub

Ejemplo 3: mover un archivo con el comando Nombre

¿Notaste que el comando Nombre requiere la ruta y el nombre del archivo? Por lo tanto, el comando Nombre no sólo cambia el nombre de los archivos sino que también puede moverlos. Por ejemplo, el siguiente código mueve el archivo de C:UsersmarksDocuments a C:Usersmarks , pero el nombre del archivo sigue siendo el mismo.

Sub VBAMoveFile()Name "C:UsersmarksDocumentsExample File.xlsx" As _    "C:UsersmarksExample File.xlsx"End Sub

Ejemplo 4: evitar errores al cambiar el nombre de archivos

Intentar mover archivos que no existen o que están bloqueados para editarlos puede provocar errores. Los errores se detallan en la sección siguiente.

Si hay un error, realmente queremos evitar pasar por el proceso de depuración de errores de Visual Basic. En cambio, una mejor opción es mostrar un cuadro de mensaje con un botón Aceptar.

Sub VBAAdvancedRenameFile()'Create variables to hold file namesDim filePath As StringDim newFilePath As StringfilePath = "C:UsersmarksDocumentsExample File.xlsx"newFilePath = "C:UsersmarksDocumentsExample File Renamed.xlsx"'Ignore errorsOn Error Resume Next'Rename fileName filePath As newFilePath'Display message if error occuredIf Err.Number  0 Then    MsgBox Prompt:="Unable to rename file", Buttons:=vbOK, _        Title:="Rename file error"End If'Turn error checking back onOn Error GoTo 0End Sub

Ejemplo 5: función reutilizable

Finalmente, creemos una función reutilizable para mover y cambiar el nombre de archivos.

La siguiente función de VBA acepta dos argumentos de cadena; la ruta del archivo existente y la nueva ruta del archivo.

Function fxRenameFile(filePath As String, newFilePath As String)'Ignore errorsOn Error Resume Next'Rename fileName filePath As newFilePath'Display message if error occuredIf Err.Number  0 Then    fxRenameFile = FalseElse    fxRenameFile = TrueEnd If'Turn error checking back onOn Error GoTo 0End Function

Podemos utilizar esta función de dos maneras.

  1. Llamar a la función desde otra macro
  2. Llamar a la función desde una hoja de trabajo

Veamos ambos por turno.

Llamar a la función desde una macro

La siguiente macro llama a la función y muestra un cuadro de mensaje con los siguientes valores:

  • Verdadero = Archivo renombrado
  • Falso = Se produjo un error.
Sub CallFunction()'Create variables to hold file namesDim filePath As StringDim newFilePath As StringfilePath = "C:UsersmarksDocumentsExample File.xlsx"newFilePath = "C:UsersmarksDocumentsExample File Renamed.xlsx"'True = File Renamed'False = Error OccuredMsgBox fxRenameFile(filePath, newFilePath)End Sub

Llamar a la función desde una hoja de trabajo

Alternativamente, podemos llamar a la función como una función de hoja de trabajo normal.

Función de llamada para cambiar el nombre del archivo desde la hoja de trabajo

Mire la captura de pantalla anterior, nuestra función personalizada se usa en la celda C6 :

=fxRenameFile(C2,C4)

VERDADERO indica que el archivo nombrado en la Celda C2 ha sido renombrado exitosamente al archivo nombrado en la Celda C4 . Si ejecutamos la función por segunda vez, mostrará FALSO, ya que el archivo ya ha sido renombrado.

Tenga en cuenta que la función se ejecuta cada vez que cambian las celdas C2 o C4 , así que tenga cuidado con el orden en que actualiza las celdas.

CONSEJO PRINCIPAL: Si usamos la función fxRenameFile dentro de una función IF, solo se ejecutará cuando se cumpla la condición. En el siguiente ejemplo, la función fxRenameFile solo se ejecuta si la celda A6 es igual a Y.

=IF(A6="Y",fxRenameFile(C2,C4),"Do not rename")

Con este método, podemos controlar cuándo y cómo se ejecuta la función. Solo necesitamos cambiar la celda A6 a otro valor cuando no tenemos la función a ejecutar.

Posibles errores

Si intentamos cambiar el nombre de una ruta de archivo o carpeta que no existe, se genera un error: Error de tiempo de ejecución '53': Archivo no encontrado .

Error de cambio de nombre de archivo de VBA

Si el nuevo nombre de archivo es el mismo que uno existente, se genera el siguiente error: Error de tiempo de ejecución '58': el archivo ya existe.

Cambiar el nombre del archivo a un archivo abierto existente

Si alguno de los nombres de archivo no tiene un formato válido, se genera el siguiente error: Error de tiempo de ejecución '5': llamada a procedimiento o argumento no válido

Error de nombre de archivo no válido al cambiar el nombre de un archivo con VBA

Notas sobre cómo cambiar el nombre de archivos

Hemos utilizado libros de Excel en los ejemplos, pero podemos utilizar cualquier tipo de archivo. Además, no estamos restringidos a archivos; También podemos cambiar el nombre de las carpetas usando el comando Nombre.

El comando Nombre es el código central de Visual Basic. Por lo tanto, existe en otras aplicaciones que soportan VBA, como Word y PowerPoint .

Artículos Relacionados:

  • Código VBA para copiar, mover, eliminar y administrar archivos .
  • biblioteca de códigos vba
  • Copiar archivo VBA: cómo + 5 ejemplos

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Este sitio web utiliza cookies para mejorar la experiencia del usuario y garantizar un funcionamiento eficiente. Al utilizar nuestro sitio web, aceptas todas las cookies de acuerdo con nuestra política de cookies. Leer mas...