VBA para renomear planilha com base no nome do arquivo

VBA para renomear planilha com base no nome do arquivo

Recebi vários arquivos gravados no formato ".Zip". Meu VBA abre todos eles e subtrai os detalhes como texto. Como são muitos, a Pasta de Trabalho cria planilhas e mantém a contagem assim:

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

Preciso atualizar ("Folha" e quantidade) para ser o nome do arquivo que foi aberto para obter as informações, e como há muitos arquivos, cada planilha deve corresponder ao arquivo. Portanto, se o arquivo nº 1 for chamado "MatchCase.zip", preciso que a planilha nº 1 seja "MatchCase.zip" e assim por diante.

Qualquer conselho, por favor.

Responder1

Isso pode depender da versão do Win e da estrutura do arquivo. Criei um ZIParquivo na minha área de trabalho chamadosuporte.Zip. Na pasta há um único arquivo chamadoformatos.xlsm

Abro o arquivo e seleciono alguma planilha na pasta de trabalho e examino Patha pasta de trabalho 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

Eu recebo:

insira a descrição da imagem aqui

Claramente, o ActiveSheet tem um pai(a pasta de trabalho que contém a planilha). Essa pasta de trabalho possui um caminho que inclui o nome do ZIParquivo.


Infelizmente, o Pathnão inclui as informações quesuporte.zipreside na minha área de trabalho.

informação relacionada