Como manipular dados no Excel usando o VBA
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 TABPara 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élulascellcount = 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 newvaluenewvalue = ThisWorkbook.Worksheets ("worksheet"). Range ("F1"). value
Inserindo uma coluna em uma planilha
Linha Escura, ColunaCélulas (linha, coluna) .EntireColumn.Select
Seleção.Inserir
Inserir várias colunas em uma planilha
Dim insiraCntLinha 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, ColunaCélulas (linha, coluna) .EntireRow.Select
Seleção.Inserir
Copiar uma linha inteira para colar
ActiveSheet.Range ("A1"). EntireRow.SelectSelection.Copy
Excluir uma linha inteira
ActiveSheet.Range ("A1"). EntireRow.SelectSelection.Delete
Selecione uma folha específica
ThisWorkbook.Worksheets ("worksheet"). Selecione
Comparar valores de um intervalo
Firstrange opacoDim Logictest
Logictest = "alguma palavra ou valor"
Se (Range (firstrange) .value = Logictest), então
'alguma rotina aqui
Fim se
Imagem: © Microsoft.