Vba: como adicionar if entre duas datas
Você pode usar a seguinte sintaxe em VBA para calcular a soma se as células estiverem entre duas datas:
Sub SumifBetweenDates()
Range(" E3 ") = WorksheetFunction.SumIfs(Range(" B2:B9 "), Range(" A2:A9 "), " >= " & [E1], _
Range(" A2:A9 "), " <= " & [E2])
End Sub
Este exemplo específico somará os valores no intervalo B2:B9 somente quando a data no intervalo A2:A9 estiver entre a data de início na célula E1 e a data de término na célula E2 .
A soma será então exibida na célula E3 .
O exemplo a seguir mostra como usar essa sintaxe na prática.
Exemplo: como adicionar If entre duas datas em VBA
Suponha que temos o seguinte conjunto de dados contendo informações sobre o número total de produtos vendidos em datas diferentes em uma loja de varejo:
Digamos que queremos calcular a soma das vendas apenas para datas entre 07/01/2023 e 26/01/2023 .
Podemos criar a seguinte macro para fazer isso:
Sub SumifBetweenDates()
Range(" E3 ") = WorksheetFunction.SumIfs(Range(" B2:B9 "), Range(" A2:A9 "), " >= " & [E1], _
Range(" A2:A9 "), " <= " & [E2])
End Sub
Quando executamos esta macro, recebemos a seguinte saída:
Observe que a célula E3 contém o valor 16 .
Representa a soma dos valores da coluna vendas onde a data está entre 07/01/2023 e 26/01/2023.
Podemos verificar se isso está correto calculando manualmente a soma dos valores da coluna Vendas onde o valor correspondente na coluna Data está entre 7/01/2023 e 26/01/2023:
Soma das vendas: 3 + 7 + 6 = 16 .
Isso corresponde ao valor calculado pelo VBA.
Observe que se você alterar os valores das datas de início e término nas células E1 e E2 , respectivamente, e executar a macro novamente, ela calculará a soma das vendas das novas datas.
Nota : Presume-se que os valores da coluna de data já estejam formatados como datas no Excel.
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em VBA:
VBA: Como escrever funções SUMIF e SUMIFS
VBA: Como escrever funções COUNTIF e COUNTIFS
VBA: Como escrever funções AVERAGEIF e AVERAGEIFS