Livro de abertura / fechamento do VBA

Neste tutorial, você aprenderá como usar o VBA para abrir e fechar a pasta de trabalho do Excel de várias maneiras.

O VBA permite que você abra ou feche arquivos usando os métodos padrão .Abrir e .Fechar.

Se você quiser saber como verificar se um arquivo existe antes de tentar abri-lo, você pode clicar neste link: Arquivo VBA existe

Abra uma pasta de trabalho no VBA

Abra a pasta de trabalho do caminho

Se você souber qual arquivo deseja abrir, poderá especificar o nome do caminho completo na função. Aqui está o código:

1 Workbooks.Open "C: \ VBA Folder \ Sample file 1.xlsx"

Esta linha do código abre o arquivo “Sample file 1” da “VBA Folder”.

Open Workbook - ActiveWorkbook

Quando você abre uma pasta de trabalho, ela se torna automaticamente a ActiveWorkbook. Você pode consultar a pasta de trabalho recém-aberta da seguinte maneira:

1 ActiveWorkbook.Save

Quando você faz referência a uma planilha ou intervalo e omite o nome da pasta de trabalho, o VBA presumirá que você está se referindo à ActiveWorkbook:

1 Folhas ("Folha1"). Nome = "Entrada"

Abra a pasta de trabalho e atribua a uma variável

Você também pode abrir uma pasta de trabalho e atribuí-la diretamente a uma variável de objeto. Este procedimento irá abrir uma pasta de trabalho para o wb variável e, em seguida, salve a pasta de trabalho.

123456 Sub OpenWorkbookToVariable ()Dim wb como pasta de trabalhoSet wb = Workbooks.Open ("C: \ VBA Folder \ Sample file 1.xlsx")wb.SaveEnd Sub

Atribuir pastas de trabalho a variáveis ​​quando elas são abertas é a melhor maneira de controlar suas pastas de trabalho

Diálogo de Arquivo Aberto da Pasta de Trabalho

Você também pode acionar a caixa de diálogo Abrir arquivo da pasta de trabalho. Isso permite que o usuário navegue até um arquivo e o abra:

12345678 Sub OpenWorkbook ()Dim strFile As StringstrFile = Application.GetOpenFilename ()Workbooks.Open (strFile)End Sub

Como você pode ver na Imagem 1, com esta abordagem os usuários podem escolher qual arquivo abrir. A caixa de diálogo Abrir arquivo pode ser bastante personalizada. Você pode usar como padrão uma determinada pasta, escolher quais tipos de arquivos são visíveis (por exemplo, xlsx apenas) e muito mais. Leia nosso tutorial na caixa de diálogo Abrir arquivo para exemplos detalhados.

Abra uma nova pasta de trabalho

Esta linha de código abrirá uma nova pasta de trabalho:

1 Workbooks.Add

Abra a nova pasta de trabalho para a variável

Este procedimento abrirá uma nova pasta de trabalho, atribuindo-a à variável wb:

1234 Sub OpenNewWorkbook ()Dim wb como pasta de trabalhoDefinir wb = Workbooks.AddEnd Sub

Sintaxe da pasta de trabalho aberta

Ao usar Workbooks.Open, você notará que há muitas opções disponíveis ao abrir a pasta de trabalho:

O nome do arquivo é obrigatório. Todos os outros argumentos são opcionais - e você provavelmente não precisará saber a maioria dos outros argumentos. Aqui estão os dois mais comuns:

Abrir pasta de trabalho somente leitura

Quando a pasta de trabalho é aberta como somente leitura, você não pode salvar sobre o arquivo original. Isso evita que o arquivo seja editado pelo usuário.

1 Workbooks.Open "C: \ VBA Folder \ Sample file 1.xlsx",, True

Abra a pasta de trabalho protegida por senha

Uma pasta de trabalho pode ser protegida por senha. Use este código para abrir a pasta de trabalho protegida por senha:

1 Workbooks.Open "C: \ VBA Folder \ Sample file 1.xlsx",,, "password"

Abra as notas de sintaxe da pasta de trabalho

Observe que na imagem acima, incluímos um parêntese “(” para mostrar a sintaxe. Se você usar parênteses ao trabalhar com Workbooks.Open, deverá atribuir a pasta de trabalho a uma variável:

1234 Sub OpenWB ()Dim wb como pasta de trabalhoSet wb = Workbooks.Open ("C: \ VBA Folder \ Sample file 1.xlsx", True, True)End Sub

Fechar uma pasta de trabalho no VBA

Fechar pasta de trabalho específica

Da mesma forma que abrir uma pasta de trabalho, existem várias maneiras de fechar um arquivo. Se você souber qual arquivo deseja fechar, poderá usar o seguinte código:

1 Workbooks.Close ("C: \ VBA Folder \ Sample file 1.xlsx")

Esta linha de código fecha o arquivo "Arquivo de amostra 1" se ele estiver aberto. Caso contrário, ele retornará um erro, portanto, você deve cuidar do tratamento de erros.

Fechar pasta de trabalho ativa

Se você deseja fechar a pasta de trabalho que está ativa no momento, esta linha de código permitirá que você faça isso:

1 ActiveWorkbook.Close

Fechar todas as pastas de trabalho abertas

Para fechar todas as pastas de trabalho abertas, você pode simplesmente usar este código:

1 Workbooks.Close

Fechar a primeira pasta de trabalho aberta

Isso fechará a primeira pasta de trabalho aberta / criada:

1 Cadernos de exercícios (1). Fechar

Substitua 1 por 2 para fechar a segunda pasta de trabalho aberta / criada e assim por diante.

Fechar sem salvar

Isso fechará uma pasta de trabalho sem salvar e sem mostrar o prompt para salvar:

1 ActiveWorkbook.Close savechanges: = False

Salvar e fechar sem aviso

Da mesma forma, isso salvará e fechará uma pasta de trabalho sem mostrar o prompt para salvar:

1 ActiveWorkbook.Close savechanges: = True

Nota: Existem várias outras maneiras de indicar se deseja salvar ou não uma pasta de trabalho e também se deve mostrar prompts ou não. Isso é discutido com mais detalhes aqui.

Outros exemplos abertos de pasta de trabalho

Abra várias novas pastas de trabalho

Este procedimento abrirá várias novas pastas de trabalho, atribuindo as novas pastas de trabalho a uma matriz:

12345678 Sub OpenMultipleNewWorkbooks ()Dim arrWb (3) como pasta de trabalhoDim i As IntegerPara i = 1 a 3Defina arrWb (i) = Workbooks.AddProximo euEnd Sub

Abra todas as pastas de trabalho do Excel em uma pasta

Este procedimento abrirá todas as pastas de trabalho do Excel em uma pasta, usando o seletor Abrir caixa de diálogo de arquivo.

12345678910111213141516 Sub OpenMultipleWorkbooksInFolder ()Dim wb como pasta de trabalhoDim dlgFD As FileDialogDim strFolder As StringDim strFileName As StringDefina dlgFD = Application.FileDialog (msoFileDialogFolderPicker)Se dlgFD.Show = -1 EntãostrFolder = dlgFD.SelectedItems (1) & Application.PathSeparatorstrFileName = Dir (strFolder & "* .xls *")Do While strFileName ""Definir wb = Workbooks.Open (strFolder & strFileName)strFileName = DirCicloFim seEnd Sub

Verifique se uma pasta de trabalho está aberta

Este procedimento testará se uma pasta de trabalho está aberta:

1234567891011 Sub TestByWorkbookName ()Dim wb como pasta de trabalhoPara cada wb nas pastas de trabalhoSe wb.Name = "New Microsoft Excel Worksheet.xls" EntãoMsgBox "Encontrei"Sair do código de chamada Sub 'aqui, vamos apenas sair por agoraFim sePróximoEnd Sub

Workbook_Open Event

Os eventos do VBA são “gatilhos” que dizem ao VBA para executar determinado código. Você pode configurar eventos de pasta de trabalho para abrir, fechar, antes de salvar, depois de salvar e muito mais.

Leia nosso tutorial Workbook_Open Event para saber mais sobre a execução automática de macros quando uma pasta de trabalho é aberta.

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave