Um guia para trabalhar com pastas de trabalho em vba

No Excel, uma pasta de trabalho é um dos mais importantes de todos os objetos do Excel e também é essencial entender como usar e consultar as pastas de trabalho ao escrever códigos VBA.

Neste tutorial, exploraremos todas as coisas que você precisa saber. Porém, a primeira coisa que você precisa entender são os objetos envolvidos no trabalho com pastas de trabalho no VBA.

Coisas para saber:

  • Objeto de fichários
  • Objeto fichário

Esses dois objetos parecem iguais, mas há uma diferença fundamental entre os dois.

Objeto de fichários

No VBA, o objeto Workbooks representa a coleção de pastas de trabalho abertas no Microsoft Excel. Imagine que você tem dez arquivos abertos ao mesmo tempo. E você deseja consultar a única pasta de trabalho entre eles. Nesse caso, você deve usar o objeto pasta de trabalho para fazer referência a essa pasta de trabalho usando seu nome.

vba workbooks object

Objeto fichário

No VBA, o objeto pasta de trabalho representa uma única pasta de trabalho entre todas as pastas de trabalho atualmente abertas no Microsoft Excel. A melhor maneira de entender isso é pensar em declarar uma variável como um fichário que você deseja usar para se referir a um fichário específico no código.

represents one single workbook

Links úteis : Adicionar uma guia Desenvolvedor | Editor Visual Basic | Execute uma macro | Pasta de trabalho de macros pessoais

Consulte uma pasta de trabalho em VBA

Para trabalhar com pastas de trabalho em VBA, a primeira coisa que você precisa saber é como fazer referência a uma pasta de trabalho em uma macro. Aqui está o bom: existem várias maneiras de se referir a uma pasta de trabalho. E no futuro exploraremos cada um deles.

1. Por nome

A maneira mais fácil de se referir a uma pasta de trabalho é pelo nome. Suponha que você queira ativar a pasta de trabalho Book1.xlsx, neste caso o código que você precisa usar deve ser o seguinte:

refer to a workbook in vba by name

Referir-se a uma pasta de trabalho com seu nome é bastante simples, você precisa especificar o nome e pronto. Mas aqui está uma coisa que você precisa cuidar : se uma pasta de trabalho não for salva, você precisará usar apenas o nome. E se estiver cadastrado, deve-se usar o nome com a extensão.

2. Por número

Quando você abre uma pasta de trabalho, o Excel atribui um número de índice a essa pasta de trabalho e você pode usar esse número para fazer referência a uma pasta de trabalho. A pasta de trabalho que você abriu primeiro terá o número de índice “1” e a segunda terá “2” e assim por diante.

refer to a workbook in vba b number

Este método pode parecer menos real para você porque é difícil saber qual pasta de trabalho está em qual número de índice. Mas há uma situação em que esse método é muito útil: um loop por todas as pastas de trabalho abertas.

3. Por esta apostila

Esta pasta de trabalho é uma propriedade que ajuda você a fazer referência à pasta de trabalho na qual você escreve o código. Digamos que você escreva o código em “Livro1” e use ThisWorkbook para salvar a pasta de trabalho. Agora, mesmo quando você altera o nome da pasta de trabalho, não será necessário alterar o código.

refer to a workbook in vba by this workbook

O código acima conta a quantidade de planilhas da pasta de trabalho onde este código está escrito e exibe uma caixa de mensagem com o resultado.

4. Por ActiveWorkbook

Se quiser fazer referência a uma pasta de trabalho ativa, você deve usar a propriedade “ActiveWorkbook”. O melhor uso desta propriedade é quando você tem certeza de qual pasta de trabalho está ativada agora. Ou você já ativou a pasta de trabalho na qual deseja trabalhar.

by active workbook

O código acima primeiro ativa a pasta de trabalho “Livro1” e, em seguida, usa a propriedade da pasta de trabalho ativa para salvar e fechar a pasta de trabalho ativa.

Acesse todos os métodos e propriedades

No VBA, sempre que você se refere a um objeto, o VBA permite acessar as propriedades e métodos fornecidos com esse objeto. Da mesma forma, o objeto pasta de trabalho vem com propriedades e métodos. Para acessá-lo, você deve primeiro definir a pasta de trabalho e depois inserir um período .

define the workbook first and enter a dot

No momento em que você digita um ponto final (.), ele exibe a lista de propriedades e métodos. Agora você deve ter uma dúvida sobre como identificar qual é uma propriedade e qual é um método.

Aqui está o truque. Se você olhar com atenção, poderá identificar um tijolo verde em movimento e uma mão cinza na frente de cada nome da lista. Portanto, todas as propriedades têm essa letra cinza antes do nome e os métodos têm um tijolo verde em movimento.

Por exemplo, para usar um método com uma pasta de trabalho

Imagine que você deseja fechar uma pasta de trabalho (que é um método), você precisa digitar ou selecionar “Fechar” na lista.

select close from a list

Depois disso, você precisa inserir parênteses iniciais para que o IntelliSense saiba quais argumentos você precisa definir.

enter starting parentheses

Com o método close você precisa definir três argumentos e como você pode ver todos esses argumentos são opcionais e você pode ignorá-los se quiser. Mas alguns métodos não possuem argumentos (por exemplo: activate)

Por exemplo, para usar uma propriedade com uma pasta de trabalho

Imagine que você deseja contar as planilhas da pasta de trabalho “livro1”. Nesse caso, você precisa usar a propriedade “Planilhas” e depois a propriedade de contagem adicional dela.

use the sheets property

No código acima, como eu disse, você define book1, então a propriedade sheet se refere a todas as planilhas, depois a propriedade count para contá-las. E quando você executa esse código ele mostra uma caixa de mensagem com o resultado.

Usando a instrução “WITH” com a pasta de trabalho

No VBA, existe uma instrução “With” que pode ajudá-lo a trabalhar com uma pasta de trabalho enquanto escreve uma macro com eficiência. Vamos ver o exemplo abaixo, onde você tem três linhas de código diferentes com a mesma pasta de trabalho, ou seja, ActiveWorkbook.

using with statement with workbook

Com a instrução “WITH”, você pode consultar a pasta de trabalho ativa apenas uma vez e usar todas as propriedades e métodos existentes no código.

  • Primeiro, você precisa começar com a instrução inicial “With ActiveWorkbook” e terminar a instrução com “End With”.
start with the starting statement
  • Depois disso, você precisa escrever o código entre esta instrução que você tem no exemplo acima.
write the code between the statement

Como você pode ver no código acima, nos referimos ao ActiveWorkbook usando a instrução WITH e então todas as propriedades e métodos devem ser usados.

 Sub vba_activeworkbook_with_statement() With ActiveWorkbook .Sheets.Add Count:=5 .Charts.Visible = False .SaveAs ("C:UsersDellDesktopmyFolderbook2.xlsx") End With End Sub

Deixe-me dar um exemplo simples e concreto para que você entenda tudo. Imagine que você me pede para ir ao quarto 215 para pegar a garrafa de água e, quando eu voltar, você me manda novamente para o quarto 215 para pegar uma caneta e depois me manda novamente para pegar um laptop. Agora é o seguinte: todas as coisas que você me disse para pegar estão no quarto 215. Então seria melhor se você me mandasse para o quarto 215 e me dissesse para pegar as três coisas de uma vez.

Leia: Com – Termine com

Declarar uma variável como uma pasta de trabalho

Às vezes você precisa declarar uma variável como um fichário para usá-la posteriormente no código. Bem, isso não exige nada de especial de você.

declare variable as workbook
  1. Use a instrução DIM (declarar).
  2. Escreva o nome da variável.
  3. Defina o tipo de variável como Pasta de trabalho.

Lidando com erros

Ao trabalhar com um ou mais objetos de pasta de trabalho no VBA, você também pode precisar lidar com erros. Vejamos um exemplo do erro “Erro de tempo de execução 9: Índice fora do intervalo” . Este erro pode ocorrer por vários motivos.

  • A pasta de trabalho que você está tentando consultar não está aberta.
  • Talvez você tenha escrito o nome errado.
  • A pasta de trabalho a que você está se referindo ainda não foi salva e você está usando a extensão com o nome.
  • Se você estiver usando o número de índice para se referir a uma pasta de trabalho e o número usado for maior que o número total de pastas de trabalho abertas.

Adicione um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *