Este tutorial demonstrará como obter e definir o nome da pasta de trabalho no VBA.
Podemos obter ou definir o nome da pasta de trabalho Ativa no VBA, ou fazer um loop por todas as pastas de trabalho abertas no Excel e obter ou definir o nome de cada uma delas usando um Loop do VBA.
Obter nome da pasta de trabalho
Para obter o nome da pasta de trabalho ativa, precisamos usar a propriedade name do objeto pastas de trabalho.
12345 | Sub GetWorkbookName ()Dim strWBName As StringstrWBName = ActiveWorkbook.NameMsgBox strWBNameEnd Sub |
Se executássemos o código acima, veríamos uma caixa de mensagem aparecer na tela com o nome da pasta de trabalho Ativa.
Para percorrer todas as pastas de trabalho ativas e retornar os nomes das pastas de trabalho ao Excel, podemos executar o seguinte código:
1234567 | Sub GetWorkbookNames ()Dim wb como pasta de trabalhoPara cada wb nas pastas de trabalhoActiveCell = wb.NomeActiveCell.Offset (1, 0) .SelecionarPróximoEnd Sub |
Os exemplos acima incluirão a extensão do arquivo (por exemplo, xlsx). Se você não quiser incluir a extensão, existem alguns métodos que podemos usar para obter apenas o nome do arquivo da pasta de trabalho.
Obter nome da pasta de trabalho sem extensão
Podemos usar as funções LEFT e INSTR para remover quaisquer caracteres após o ponto no nome do arquivo:
12345 | Sub GetWorkbookName ()Dim strWBName As StringstrWBName = Left (ActiveWorkbook.Name, InStr (ActiveWorkbook.Name, ".") - 1)MsgBox strWBNameEnd Sub |
Podemos usar as funções LEFT e LEN para remover 5 caracteres do final do nome do arquivo:
12345 | Sub GetWorkbookName ()Dim strWBName As StringstrWBName = Left (ActiveWorkbook.Name, Len (ActiveWorkbook.Name) - 55)MsgBox strWBNameEnd Sub |
Configurando o nome da pasta de trabalho
Para definir o nome de uma pasta de trabalho no VBA, ainda usamos a propriedade Name da pasta de trabalho, no entanto, não podemos usar esse método para alterar o nome da pasta de trabalho ativa. Isso ocorre porque a pasta de trabalho Ativa está aberta e ocorrerá um erro de acesso ao arquivo. Para superar isso, podemos salvar o arquivo com um novo nome e, em seguida, excluir o arquivo antigo.
12345678910 | Sub SetWorkbookName público ()Dim strPath As StringDim strNewName As StringDim strOldName As StringstrOldName = ActiveWorkbook.NamestrNewName = InputBox ("Insira um novo nome para a pasta de trabalho")strPath = ActiveWorkbook.PathActiveWorkbook.SaveAs strPath & "/" & strNewNameMate strPath & "/" & strOldNameEnd Sub |
Para renomear uma pasta de trabalho que não está aberta, podemos usar o método Name.
123 | Public Sub RenameWorkbook ()Nome "C: \ Data \ MyFile.xlsx" Como "C: \ Data \ MyNewFile.xlsx"End Sub |