Como usar a função subtotal em vba (com exemplos)
Você pode usar a função SUBTOTAL no Excel para calcular estatísticas gerais apenas para células visíveis em uma planilha.
Você pode usar a seguinte sintaxe básica em VBA para usar a função SUBTOTAL:
Sub FindSubtotal()
Range(" A16 ") = WorksheetFunction.Subtotal(9, Range(" B2:B11 "))
End Sub
Este exemplo específico calcula a soma dos valores nas células visíveis no intervalo B2:B11 e exibe o resultado na célula A16 .
Observe que o primeiro argumento do método Subtotal especifica o método de agregação a ser usado, onde:
- 1 : MÉDIO
- 2 : CONTA
- 3 : CONTA
- 4 : MÁXIMO
- 5 : MÍNIMO
- 6 : PRODUTO
- 7 : DESVPAD
- 8 : STDEVP
- 9 : SOMA
- 10 :VAR
- 11 : VARP
O exemplo a seguir mostra como usar o método Subtotal em VBA na prática.
Exemplo: como usar subtotal em VBA
Digamos que temos o seguinte conjunto de dados no Excel que contém informações sobre vários jogadores de basquete:
Agora suponha que aplicamos um filtro para mostrar apenas as linhas onde a equipe é igual a A ou C:
Podemos criar a seguinte macro para calcular a soma das células visíveis na coluna de pontos e exibir os resultados na célula A16 :
Sub FindSubtotal()
Range(" A16 ") = WorksheetFunction.Subtotal(9, Range(" B2:B11 "))
End Sub
Quando executamos esta macro, recebemos a seguinte saída:
Observe que a célula A16 contém o valor 168 .
Isso nos diz que a soma das células visíveis na coluna de pontos é 168.
Também podemos alterar o valor do primeiro argumento do método Subtotal para calcular uma métrica diferente.
Por exemplo, podemos usar o valor 1 para calcular a média das células visíveis na coluna de pontos:
Sub FindSubtotal()
Range(" A16 ") = WorksheetFunction.Subtotal(1, Range(" B2:B11 "))
End Sub
Quando executamos esta macro, recebemos a seguinte saída:
Observe que a célula A16 contém o valor 24 .
Isso nos diz que a média das células visíveis na coluna de pontos é 24.
Nota : Você pode encontrar a documentação completa do método VBA Subtotal aqui .
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em VBA:
VBA: Como adicionar valores em um intervalo
VBA: Como calcular o valor médio do intervalo
VBA: Como contar o número de linhas no intervalo