Como usar a função vba datepart?
A função VBA DATEPART está listada na categoria de data das funções VBA. Quando você o usa no código VBA, ele pode retornar o valor do dia a partir de um valor de data ou hora . Em termos simples, você pode obter segundos, minutos, horas, dias, meses ou anos a partir de um valor de data ou hora.
Sintaxe
DatePart(intervalo, data, [primeiro dia da semana, [primeira semana do ano]])
Argumentos
- Intervalo : Uma string para especificar qual parte da data deve ser retornada no resultado.
- Data : A data a partir da qual a parte da data deve retornar.
- [FirstDayOfWeek] : Uma string para definir o primeiro dia da semana [Este é um argumento opcional e se omitido vbSunday por padrão].
- vbUseSystemDayOfWeek – Dependendo das configurações do sistema.
- vbDomingo – domingo
- vblunday – segunda-feira
- vbTerça-feira – Terça-feira
- vbQuarta-feira – Quarta-feira
- vbQuinta-feira – Quinta-feira
- vbSexta-feira – Sexta-feira
- vbSábado – Sábado
- [FirstWeekOfYear] : Uma string para definir a primeira semana do ano [Este é um argumento opcional e se omitido vbFirstJan1 por padrão].
- vbSystem – Dependendo das configurações do sistema.
- vbFirstJan1 – A semana em que ocorre o primeiro dia de janeiro.
- vbFirstFourDays – A primeira semana que contém pelo menos quatro dias no ano novo.
- vbFirstFullWeek – A primeira semana completa do ano novo.
Exemplo
Para entender de forma prática como usar a função VBA DATEPART, você precisa seguir o exemplo abaixo, onde escrevemos um código VBA usando-a:
Sub example_DATEPART() Range("A2").Value = DatePart("d", Range("A1")) Range("A3").Value = DatePart("h", Range("A1")) Range("A4").Value = DatePart("m", Range("A1")) Range("A5").Value = DatePart("n", Range("A1")) Range("A6").Value = DatePart("q", Range("A1")) Range("A7").Value = DatePart("s", Range("A1")) Range("A8").Value = DatePart("w", Range("A1")) Range("A9").Value = DatePart("ww", Range("A1")) Range("A11").Value = DatePart("y", Range("A1")) Range("A12").Value = DatePart("yyyy", Range("A1")) End Sub
No código acima, usamos um intervalo diferente em DATEPART:
- ‘d’ para obter o dia e retornou 15.
- ‘h’ para obter as horas, mas como não temos tempo na data, retornou 0 no resultado.
- ‘m’ para obter o mês e retornou 1.
- ‘n’ para obter os minutos, mas como não temos tempo na data, retornou 0 no resultado.
- “q” para obter a moeda e retornou 1.
- ‘s’ para obter os segundos, mas como não temos tempo na data, ele retornou 0 no resultado.
- ‘w’ para obter o dia da semana e retornou 3.
- ‘ww’ para pegar a semana do ano e voltou 3.
- ‘y’ para obter o dia do ano e retornou 15.
- “aaaa” para pegar o ano e voltou para 2019.
Comentários
- Se for fornecida uma data sem o ano, será utilizado o ano atual.
- Se o valor especificado for diferente de uma data ou uma data que não possa ser reconhecida como data, o VBA retornará o erro de tempo de execução 13.
- Definir o argumento “firstdayofweek” só funciona quando o “intervalo” é “w” ou “ww”.