Aprenda neste artigo como usar fórmulas e funções Excel no VBA usando WorksheetFunction.
O Excel VBA como sabem é uma ferramenta que expande muito as funcionalidades do Excel e dos outros programas que compõe o pacote Office.
Dentro do VBA é possível utilizar qualquer uma das funções que são utilizadas normalmente dentro do Excel, auxiliando muito em determinadas tarefas.
Como é possível utilizar qualquer função do Excel, temos á disposição as funções PROCV, CONT.SE, SOMASE, MÉDIA, simplificando a solução de problemas complexos.
Para utilizá-la digite dentro do código VBA WorksheetFunction. e o nome da função. Todas as funções tem que ser em inglês, para isso veja o nome das funções no artigo: http://guiadoexcel.com.br/traducao-das-formulas-excel-ingles-portugues.
Para usar as funções de planilha (WorksheetFunction) no VBA, é necessário primeiro adicionar a biblioteca “Microsoft Excel XX.X Object Library” (onde XX.X é a versão do Excel) à sua referência de projeto. Isso pode ser feito selecionando “Ferramentas” > “Referências” no menu VBA e marcando a opção correspondente.
Em seguida, você pode usar as funções de planilha como qualquer outra função VBA, precedendo o nome da função com “Application.WorksheetFunction.”. Por exemplo, para usar a função SOMA, você pode escrever “Application.WorksheetFunction.SOMA(rng)” onde “rng” é a faixa de células que deseja somar.
Por exemplo a função PROCV, em inglês VLOOKUP, veja um exemplo de código:
Sub Teste()
Dim lValor As Variant
lValor = WorksheetFunction.VLookup("Teste", Sheets("Plan1").Range("A:C"), 2, False)
End Sub
É importante notar que as funções de planilha retornam erros se algo estiver incorreto (por exemplo, uma célula vazia em um intervalo passado para a função SOMA), então é recomendável usar a estrutura de tratamento de erros para lidar com esses erros.
Veja no Exemplo que a variável lValor recebe o resultado do PROCV e que a utilização da função PROCV é semelhante á realizada dentro do Excel. Veja:
- “Teste” = Valor que será procurado;
- Sheets(“Plan1”).Range(“A:C”) = Local aonde estão os dados aonde será realizada a pesquisa;
- 2 = Coluna do retorno do valor pesquisado;
- False = Define que a pesquisa tem que ser exata, não aproximada.
Caso tenha dúvidas da função PROCV veja o artigo: http://guiadoexcel.com.br/procv-e-proch-excel.
É importante notar que as funções utilizadas devem ser compatíveis com a versão do Excel aonde a planilha será executada, 2003, 2007, 2010, 2013…
Um outro exemplo de função que pode auxiliar muito na programação é a simples função de soma, que dentro do ambiente de programação seria necessário fazer um loop. Exemplo:
msgBox WorksheetFunction.Sum(Range("A:A"))
Então lembre que dentro do VBA você pode utilizar qualquer das funções do Excel e ainda as outras inúmeras possibilidades do Excel VBA.