Funções de planilha em macros VBA usando VBA no Microsoft Excel

Anonim

No código VBA, se você tiver que se referir a certas funções de planilha como Sum, Vlookup, etc, você pode usá-las diretamente usando o objeto Application. Portanto, usaremos as funções como -

Application.WorksheetFunction.Sum ou Application.WorksheetFunction.Vlookup Onde WorksheetFunction é o método do objeto Aplicativo.

Considerando que temos essa macro de teste, se digitarmos

Application.WorksheetFunction.

Iremos obter um pop-up mostrando as fórmulas, consulte a imagem abaixo

Então, por exemplo, se você deseja somar os valores deste intervalo na coluna A usando vba -

Vamos ter uma variável chamada SalesTotal que salvará a soma nela. Para obter o total em SalesTotal, usaremos o seguinte código VBA no módulo padrão:

Sub macro4 ()
Dim SalesTotal enquanto
SalesTotal = Application.WorksheetFunction.Sum (Range ("A2: A6"))
MsgBox SalesTotal
End Sub

Para copiar o código acima para o seu arquivo,

  • Pressione Alt + F11 no teclado.
  • No lado esquerdo, você verá Objetos do Microsoft Excel.
  • Clique com o botão direito e selecione Inserir.
  • Em seguida, clique em Módulo.
  • Copie o código para a janela de código à direita.

Quando usarmos essa macro de amostra, obteremos uma mensagem mostrando o valor que está armazenado no Total de Vendas e pode ser usado em outras linhas de código na macro.

A saída que obteremos é -

Se quiser que o SalesTotal seja mostrado na célula A7, você pode alterar a linha de código de

Msgbox SalesTotalpara Planilhas (“Planilha1”). Intervalo (“A7”). Valor = SalesTotal

Considerando, também precisamos da média de vendas para esses números na célula A9. Podemos usar o código abaixo

Sub macro5 ()
Dim SalesTotal enquanto
Com planilhas ("Planilha1")
SalesTotal = Application.WorksheetFunction.Sum (.Range ("A2: A6"))
.Range ("A7"). Value = SalesTotal
.Range ("A9"). Value = Application.WorksheetFunction.Aadise (.Range ("A2: A6"))
Terminar com
End Sub

Existem pequenas alterações neste código em comparação com o anterior.

  • Em vez de usar uma variável para a média, populei diretamente esse valor após o cálculo na célula A9. Portanto, você verá a linha .Range (“A9”). Value = Application.WorksheetFunction.Aadise (.Range (“A2: A6”))
  • A linha msgbox foi removida.
  • O valor na variável SalesTotal vai para a célula A7.
  • Idealmente, você pode repetir a mesma linha de código que foi usada para a média, para a linha de código Soma, substituindo

SalesTotal = Application.WorksheetFunction.Sum (.Range (“A2: A6”))

.Range (“A7”). Value = SalesTotal

Com

.Range (“A7”). Value = Application.WorksheetFunction.Sum (.Range (“A2: A6”))

No entanto, ele foi mantido para que você possa entender as diferentes maneiras de codificar a mesma tarefa. Da mesma forma, podemos usar outras funções enquanto usamos Application.WorksheetFunction. Todas essas funções que podemos usar diretamente na planilha, podemos usá-las aqui.

Isso torna mais fácil usar as funções no código para que possamos calcular as fórmulas necessárias sem ter que criar um código para a fórmula.

Se você gostou de nossos blogs, compartilhe com seus amigos no Facebook. E você também pode nos seguir no Twitter e no Facebook.
Gostaríamos muito de ouvir de você, diga-nos como podemos melhorar, complementar ou inovar nosso trabalho e torná-lo melhor para você. Escreva-nos em site de email