Vba: como converter a data em número da semana
Você pode usar a seguinte sintaxe básica em VBA para converter uma data em um número de semana:
Sub FindWeekNumber()
Dim i As Integer
For i = 2 To 9
Range(" B " & i) = WorksheetFunction.WeekNum(Range(" A " & i))
Next i
End Sub
Este exemplo específico encontrará o número da semana para cada data no intervalo A2:A9 e exibirá os resultados no intervalo B2:B9 .
Observe que o método VBA WeekNum pressupõe que as semanas começam no domingo.
Para especificar outro dia como início da semana, você pode adicionar um segundo argumento ao método WeekNum :
Sub FindWeekNumber()
Dim i As Integer
For i = 2 To 9
Range(" B " & i) = WorksheetFunction.WeekNum(Range(" A " & i), vbMonday)
Next i
End Sub
O exemplo a seguir mostra como usar o método WeekNum para converter datas em números de semanas na prática.
Exemplo: converter data em número da semana em VBA
Suponha que temos a seguinte coluna de data no Excel:
Suponha que queiramos converter cada data em um número de semana e exibir o número da semana na coluna B.
Podemos criar a seguinte macro para fazer isso:
Sub FindWeekNumber()
Dim i As Integer
For i = 2 To 9
Range(" B " & i) = WorksheetFunction.WeekNum(Range(" A " & i))
Next i
End Sub
Quando executamos esta macro, recebemos a seguinte saída:
A coluna B exibe o número da semana para cada data na coluna A, assumindo que as semanas começam no domingo.
Se quiser especificar outro dia como início da semana, por exemplo segunda-feira, você pode usar a seguinte sintaxe:
Sub FindWeekNumber()
Dim i As Integer
For i = 2 To 9
Range(" B " & i) = WorksheetFunction.WeekNum(Range(" A " & i), vbMonday)
Next i
End Sub
Quando executamos esta macro, recebemos a seguinte saída:
A coluna B agora exibe o número da semana para cada data na coluna B, assumindo que as semanas começam na segunda-feira.
Nota : Você pode encontrar a documentação completa do método VBA WeekNum aqui .
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em VBA:
Como comparar datas em VBA
Como converter string para data em VBA
Como calcular dias entre duas datas em VBA