VBA para cambiar el nombre de la hoja según el nombre del archivo

VBA para cambiar el nombre de la hoja según el nombre del archivo

Obtuve un montón de archivos grabados en formato ".Zip". Mi VBA los abre todos y resta los detalles como texto. Como hay muchos, el Libro de trabajo crea hojas y mantiene el recuento de la siguiente manera:

ActiveSheet.Paste
Dim sheetsQuantity As Integer
sheetsQuantity = ThisWorkbook.Worksheets.Count
ActiveSheet.Name = "Sheet" & sheetsQuantity - 3

Necesito actualizar ("Hoja" y cantidad) para que sea el nombre del archivo que se abrió para obtener la información y, dado que hay muchos archivos, cada hoja debe coincidir con el archivo. Entonces, si el archivo n.° 1 se llama "MatchCase.zip", necesito que la hoja n.° 1 sea "MatchCase.zip" y así sucesivamente.

Cualquier consejo, por favor.

Respuesta1

Esto puede depender de su versión de Win y de su estructura de archivos. Creé un ZIParchivo en mi escritorio llamadotitular.Zip. En la carpeta hay un solo archivo llamadoformatos.xlsm

Abro el archivo y selecciono alguna hoja en el libro y examino Pathel libro usando:

Sub WhoHoldsMe()
    Dim sPath As String

    sPath = ActiveSheet.Parent.Path
    arr1 = Split(sPath, "\")
    arr2 = Split(arr1(UBound(arr1)), "_")

    MsgBox sPath & vbCrLf & arr2(1)

End Sub

Yo obtengo:

ingrese la descripción de la imagen aquí

Claramente, ActiveSheet tiene un padre(el libro que sostiene la hoja). Ese libro tiene una ruta que incluye el nombre del ZIParchivo.


Lamentablemente, Pathno incluye la información quetitular.zipreside en mi escritorio.

información relacionada