Como manipular dados no Excel usando o VBA

O Microsoft Excel é uma ferramenta poderosa que pode ser usada para manipulação de dados. Para aproveitar ao máximo o software, você precisa usar o VBA. O Visual Basic for Applications, ou VBA, oferece aos usuários do Excel a capacidade de criar macros, que são funções personalizadas que economizam tempo para manipulação e análise de dados.

As macros processam o código VBA para gerenciar grandes conjuntos de dados que, de outra forma, demorariam muito tempo para serem modificados. Por exemplo, com o VBA, você pode criar uma macro para formatar automaticamente determinados campos que atendem aos critérios determinados.

Abaixo está um exemplo de um script VBA usado no Excel:

Sub ConfigureLogic ()

Dim qstEntries

Dim dqstEntries

Dim qstCnt, dqstCnt

qstEntries = Range ("QualifiedEntry"). Contagem

qst = qstEntries - WorksheetFunction.CountIf (Range ("QualifiedEntry"), "")

ReDim QualifiedEntryText (qst)

'MsgBox (qst)

dqstEntries = Range ("DisQualifiedEntry").

dqst = dqstEntries - WorksheetFunction.CountIf (Range ("DisQualifiedEntry"), "")

ReDim DisqualifiedEntryText (dqst)

'MsgBox (dqst)

Para qstCnt = 1 para qst

QualifiedEntryText (qstCnt) = ThisWorkbook.Worksheets ("Qualifiers"). Range ("J" e 8 + qstCnt) .value

'MsgBox (QualifiedEntryText (qstCnt))

logging ("Entrada de entrada qualificada configurada #" & qstCnt & "as {" & QualifiedEntryText (qstCnt) & "}")

Próximo

Para dqstCnt = 1 para dqst

DisqualifiedEntryText (dqstCnt) = ThisWorkbook.Worksheets ("Qualifiers"). Range ("M" e 8 + dqstCnt) .value

'MsgBox (DisqualifiedEntryText (dqstCnt))

logging ("Entrada de Entrada DisQualified Configurada #" & qstCnt & "as {" & DisqualifiedEntryText (dqstCnt) & "}")

Próximo

includeEntry = ThisWorkbook.Worksheets ("Qualifiers"). Range ("IncludeSibling"). value

'MsgBox (includeEntry)

logging ("entradas incluídas na pesquisa -" & includeEntry)

End Sub

Como analisar e manipular entradas em uma planilha

Para usar o VBA para análise de dados, você precisará verificar as configurações no Excel para a ferramenta Developer. Para localizá-lo, localize a Faixa de Opções do Excel e procure a guia Desenvolvedor . Se não for exibido, você precisará ativá-lo no menu Configurações do Excel.

Em seguida, crie uma nova planilha e nomeie-a como "Qualificadores". Usaremos essa planilha para verificar todas as coisas que qualificam as seleções.

Em seguida, configure os qualificadores na planilha de acordo com o código. Deve ser inserido manualmente; cortar e colar não funcionará.

ThisWorkbook.Worksheets ("Qualifiers"). Range ("J" & 8 + qstCnt) .value

Como localizar o intervalo e construir uma matriz

O intervalo na função acima é célula J9. A função de faixa registra um 8; no entanto, o intervalo real é 9 porque:

 Para qstCnt = 1 para qst 

A declaração acima começa em 1, não 0. Portanto, a lista começa em 9. Nesse caso, observe (qstCnt = 1).

Para construir um array de entradas na planilha de Qualificadores, coloque palavras aleatórias nas células J9-J13. Quando as linhas estiverem concluídas, podemos avançar e encontrar e manipular dados no Excel.

 Sub Planilhas Privadas ()

Folha de lençol

Dim WS como planilha

sheetcount = 0

logging ("***** Starting Scrub *********")

Para cada WS neste livro de trabalho.

sheetcount = sheetcount + 1

Se WS.Name = "Selecionado" Então

'precisa registrar a data e a hora na planilha chamada "Logging"

ActionCnt = ActionCnt + 1

logging ("Chamando planilha:" & WS.Name)

scrubsheet (sheetcount)

Outro

ActionCnt = ActionCnt + 1

logging ("Skipped over sheet:" & WS.Name)

Fim se

Próxima WS

'MsgBox ("terminando")

ActionCnt = ActionCnt + 1

logging ("**** Scrub DONE!")

Application.ScreenUpdating = True

End Sub

Existe um exemplo de um contador de abas de trabalho.

Folha de lençol

Dim WS como planilha

sheetcount = 0

logging ("***** Starting Scrub *********")

Para cada WS neste livro de trabalho.

sheetcount = sheetcount + 1

Depois de inicializar a contagem de folhas, defina-a como 0 para reiniciar o contador.

Logging () é outra sub-rotina que controla todas as ações para auditar as seleções.

O próximo loop For define o Active Workbook para contar. WS é o inicializado e ThisWorkbook. Planilhas é a guia ativa no livro. Como não nomeamos a pasta de trabalho, este módulo será executado em qualquer pasta de trabalho ativa. Se você estiver trabalhando em várias pastas de trabalho e ativar a pasta errada, ela tentará executá-la. Para evitar erros, tome precauções para nomear sua pasta de trabalho específica ou apenas para trabalhar em uma por vez.

Toda vez que o loop é acionado, ele adiciona uma variável à contagem de folhas para acompanhar o número de guias. Então nos movemos para:

 Se WS.Name = "Selecionado" Então

'precisa registrar a data e a hora na planilha chamada "Logging"

ActionCnt = ActionCnt + 1

logging ("Chamando planilha:" & WS.Name)

scrubsheet (sheetcount)

Outro

ActionCnt = ActionCnt + 1

logging ("Skipped over sheet:" & WS.Name)

Fim se

Aqui, procuramos a guia Selecionado.

Se a variável WS for igual a Selected, então nós a registramos e disparamos a Scrub Sheet da sub-rotina. Se a variável WS não for igual a Selected, será registrado que essa folha foi ignorada e a ação será contada. O código acima é um exemplo de como contar o número de e localizar uma determinada guia.

O seguinte listng é todos os diferentes métodos que podem ser usados ​​para manipular dados!

Diverta-se!

Como contar o número de folhas em uma pasta de trabalho

 Dim TAB

Para cada tabulação neste livro de trabalho.

'alguma rotina aqui

Próximo

Encontre a última linha, coluna ou célula em uma planilha

 Dim contagem de células

cellcount = Cells (ThisWorkbook.Worksheets ("worksheet"). Rows.Count, 1) .End (xlUp) .Row

Filtrar usando critérios avançados

 Intervalo ("A2: Z99"). Chave de ordenação1: = Faixa ("A5"), ordem1: = xlAscendente, Cabeçalho: = xlNão 

Aplicar propriedade de ajuste automático a uma coluna

 Colunas ("A: A"). EntireColumn.AutoFit 

Obtendo valores de outra planilha

 dim newvalue

newvalue = ThisWorkbook.Worksheets ("worksheet"). Range ("F1"). value

Inserindo uma coluna em uma planilha

 Linha Escura, Coluna

Células (linha, coluna) .EntireColumn.Select

Seleção.Inserir

Inserir várias colunas em uma planilha

 Dim insiraCnt

Linha Escura, Coluna

Para insertCnt = 1 para N

ThisWorkbook.Worksheets ("worksheet"). Selecione

Células (linha, coluna) .EntireColumn.Select

Seleção.Inserir

Próximo

Adicionando um intervalo nomeado a uma folha específica

 ThisWorkbook.Worksheets ("planilha"). Names.Add Nome: = "Status", RefersToR1C1: = "= planilha! C2"

Inserir uma linha inteira em uma planilha

 Linha Escura, Coluna

Células (linha, coluna) .EntireRow.Select

Seleção.Inserir

Copiar uma linha inteira para colar

 ActiveSheet.Range ("A1"). EntireRow.Select

Selection.Copy

Excluir uma linha inteira

 ActiveSheet.Range ("A1"). EntireRow.Select

Selection.Delete

Selecione uma folha específica

 ThisWorkbook.Worksheets ("worksheet"). Selecione 

Comparar valores de um intervalo

 Firstrange opaco

Dim Logictest

Logictest = "alguma palavra ou valor"

Se (Range (firstrange) .value = Logictest), então

'alguma rotina aqui

Fim se

Imagem: © Microsoft.

Artigo Anterior Próximo Artigo

Principais Dicas