VBA trabalhando com pastas de trabalho (o objeto da pasta de trabalho)

Este guia irá apresentá-lo a trabalhar com o Objeto de pasta de trabalho em VBA.

O objeto da pasta de trabalho

Primeiro, para interagir com pastas de trabalho no VBA, você deve entender o Objeto de pasta de trabalho.

Com o objeto de pasta de trabalho, você pode fazer referência a pastas de trabalho por seus nomes, como este:

1 Pastas de trabalho ("Livro2.xlsm"). Ative

No entanto, esse código só funcionará se a pasta de trabalho estiver aberta. Se a pasta de trabalho estiver fechada, você precisará fornecer o caminho completo da pasta de trabalho:

1 Workbooks.Open ("C: \ Users \ StevePC2 \ Downloads \ book2.xlsm")

Em vez de digitar o caminho completo, se a pasta de trabalho desejada estiver no mesmo diretório da pasta de trabalho onde seu código está armazenado, você pode usar este código de linha para abrir a pasta de trabalho:

1 Workbooks.Open (ThisWorkbook.Path & "\ book2.xlsm")

Isso faz uso do objeto ThisWorkbook que discutiremos na próxima seção.

Número de índice da pasta de trabalho

Por último, você pode fazer referência a pastas de trabalho por seu “Número de índice”. O número de índice de uma pasta de trabalho corresponde à ordem em que a pasta de trabalho foi aberta (tecnicamente, é a posição da pasta de trabalho na Coleção de Pastas de Trabalho).

1 Pastas de trabalho (1). Ativar

Isso é útil se você quiser fazer algo como fechar a primeira (ou a última) pasta de trabalho aberta.

Activate Workbook, ActiveWorkbook e ThisWorkbook

Se uma pasta de trabalho é NÃO ATIVO, você pode acessar os objetos da pasta de trabalho como este:

1 Pastas de trabalho ("Livro2.xlsm"). Folhas ("Folha1"). Intervalo ("A1"). Valor = 1

No entanto, se a pasta de trabalho estiver ativa, você pode omitir o objeto da pasta de trabalho:

1 Folhas ("Folha1"). Intervalo ("A1"). Valor = 1

E se quiser interagir com a planilha ativa da pasta de trabalho, você também pode omitir o objeto de planilhas:

1 Intervalo ("A1"). Valor = 1

Ativar pasta de trabalho

Para ativar uma pasta de trabalho, use o Método de ativação.

1 Pastas de trabalho ("Livro2.xlsm"). Ative

Agora você pode interagir com o objeto de Book2 sem declarar explicitamente o nome da pasta de trabalho.

ActiveWorkbook

o ActiveWorkbook objeto sempre se refere à pasta de trabalho ativa. Isso é útil se você deseja atribuir o ActiveWorkbook a uma variável para usar mais tarde.

12 Dim wb como pasta de trabalhoDefinir wb = ActiveWorkbook

ThisWorkbook

o ThisWorkbook objeto sempre se refere à pasta de trabalho onde o código em execução está armazenado. Para ativar ThisWorkbook, use esta linha de código:

1 ThisWorkbook.Activate

Abra a pasta de trabalho

Para abrir uma pasta de trabalho, use o Método Aberto:

1 Workbooks.Open ("C: \ Users \ StevePC2 \ Downloads \ book2.xlsm")

A pasta de trabalho recém-aberta sempre se tornará o ActiveWorkbook, permitindo que você interaja facilmente com ele.

1 ActiveWorkbook.Save

O Open Method tem vários outros argumentos, permitindo que você abra somente leitura, abra uma pasta de trabalho protegida por senha e muito mais. Isso é abordado aqui em nosso artigo sobre Pastas de Trabalho de Abertura / Fechamento.

Abrir e atribuir a variável

Você também pode abrir uma pasta de trabalho e atribuí-la a uma variável ao mesmo tempo:

12 Dim wb como pasta de trabalhoDefina wb = Workbooks.Open ("C: \ Users \ StevePC2 \ Downloads \ book2.xlsm")

Abrir caixa de diálogo de arquivo

Você também pode acionar a caixa de diálogo Abrir arquivo assim:

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

Criar nova (adicionar) pasta de trabalho

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

1 Workbooks.Add

A nova pasta de trabalho agora se torna o ActiveWorkbook, permitindo que você interaja com ele (por exemplo, salve a nova pasta de trabalho).

Adicionar nova pasta de trabalho à variável

Você também pode adicionar uma nova pasta de trabalho diretamente a uma variável:

12 Dim wb como pasta de trabalhoDefinir wb = Workbooks.Add

Fechar pasta de trabalho

Fechar e salvar

Para fechar uma pasta de trabalho com salvamento, use o Método de fechamento com SaveChanges definido como TRUE:

1 ActiveWorkbook.Close SaveChanges: = True

Fechar sem salvar

Para fechar sem salvar, defina SaveChanges igual a FALSE:

1 ActiveWorkbook.Close SaveChanges: = False

Livro de trabalho salvar como

o Método SaveAs é usado para salvar uma pasta de trabalho como.

Para salvar uma pasta de trabalho com um novo nome, no mesmo diretório, você pode sugerir usar isto:

1 ActiveWorkbook.SaveAs "novo"

onde “novo” é o novo nome do arquivo.

Para salvar uma pasta de trabalho em um novo diretório com uma extensão de arquivo específica, basta especificar o novo diretório e o nome do arquivo:

1 ActiveWorkbook.SaveAs "C: \ Users \ StevePC2 \ Downloads \ new.xlsm"

Outros exemplos de pasta de trabalho VBA

Nome da pasta de trabalho

Para obter o nome de uma pasta de trabalho:

1 MsgBox ActiveWorkbook.Name

Proteger a pasta de trabalho

Para proteger a estrutura da pasta de trabalho da edição, você pode usar o Método de Proteção (senha opcional):

1 Pastas de trabalho ("book1.xlsm"). Proteger "senha"

Para desproteger uma pasta de trabalho, use o Método UnProtect:

1 Pastas de trabalho ("book1.xlsm"). Desproteger "senha"

Percorrer todas as pastas de trabalho abertas

Para percorrer todas as pastas de trabalho abertas:

123456789 Sub LoopThroughWBs ()Dim wb como pasta de trabalhoPara cada wb nas pastas de trabalhoMsgBox wb.NamePróximo wbEnd Sub

Evento de ativação da pasta de trabalho

Você pode executar algum código sempre que uma pasta de trabalho específica for aberta com o Evento de abertura da pasta de trabalho.

Coloque este procedimento no Módulo ThisWorkbook da sua pasta de trabalho:

123 Sub Workbook_Open ()Planilhas ("planilha1"). AtiveEnd Sub

Este procedimento irá ativar Folha1 toda vez que a pasta de trabalho é aberta.

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

wave wave wave wave wave