Função Excel VBA DatePart
DatePart em VBA é usado para identificar a parte da data para a data fornecida como um argumento, a parte da data pode ser dias ou meses ou ano ou mesmo a hora, minutos e segundos, a sintaxe desta função se esclarece muito e é o seguinte, Datepart (Interval, Date as Argument).
Sintaxe
A sintaxe da função DatePart é fornecida abaixo:

- Intervalo: os dados a serem transmitidos em um argumento de intervalo são do tipo string, o que significa que esse argumento pode conter quaisquer valores válidos. O intervalo pode ser de ano, mês, trimestre, dia, semana, hora, minuto, segundo.
- Data: o valor da data que precisa ser avaliado.
- firstdayofweek: este é um parâmetro opcional. Isso descreve o primeiro dia da semana. Isso pode até ser ignorado. Se esse parâmetro for ignorado, o domingo será automaticamente considerado o primeiro dia da semana. Se você deseja alterar isso, este parâmetro pode ser usado. Este argumento pode consistir em vbUseSystem 0.
Use a configuração da API NLS
vbSunday (padrão), vbSunday, vbT Terça, vbQuarta, vbTh Quinta vbFriday, vbSábado
- firstweekofyear: Da mesma forma, o parâmetro superior, também é um parâmetro opcional. Isso descreve a primeira semana do ano. Este parâmetro também pode ser ignorado. Se este parâmetro for ignorado, ele assume que 1º de janeiro é a primeira semana do ano. Se você quiser mudar isso, então este parâmetro pode ser usado.
Este argumento pode consistir nos seguintes valores.
vbUseSystem, vbFirstJan1, vbFirstFourDays, vbFirstFullWeek.
Depois de fornecer todos os parâmetros, datepart () retornará o valor numérico, como data inteira ou ano ou mês ou trimestre, etc. Portanto, o tipo de retorno desta função será um valor numérico.

Como usar a função DatePart no VBA?
Exemplo 1
O primeiro exemplo é exibir a data completa e também o trimestre desse mês.
Para conseguir isso, precisamos escrever algum código em Visual Basic para essa guia Goto Developer e, em seguida, clicar em Visual Basic, e então uma janela será aberta.

Nessa janela, escreva o código conforme mostrado abaixo.
Código:
Sub date_Datepart () Dim mydate As Variant mydate = # 12/25/2019 # MsgBox mydate MsgBox DatePart ("q", mydate) 'exibe Quarter End Sub

Neste exemplo, usamos a função datepart para exibir a data e alguma parte da data que é um quarto da data. Isso exibe em qual trimestre do ano está a data de entrada.
Se depurarmos o código, a data será exibida como uma data completa pela primeira vez quando o código executar “Msgbox mydate” porque a data aleatória é atribuída à variável “mydate”.
A seguir, estamos exibindo a qual trimestre do ano essa data pertence.
Ao executar o código manualmente ou usando a tecla de atalho F5, a data será exibida conforme mostrado após clicar em ok. Em seguida, o trimestre da data seria exibido. Isso pode ser mostrado na imagem abaixo.

Da mesma forma, Trimestre, apenas data, mês ou ano também podem ser exibidos.
Exemplo # 2
Neste exemplo, irei inserir a data manualmente no tempo de execução.
Código:
Sub date1_datePart () Dim TodayDate As Date 'Declare variables. Dim Msg TodayDate = InputBox ("Insira uma data:") Msg = "Trimestre:" & DatePart ("q", TodayDate) MsgBox Msg End Sub

Aqui neste exemplo, estamos tentando obter a data manualmente em tempo de execução. O código “TodayDate = InputBox (“ Enter a date: ”)” nesta linha indica que a data pode ser inserida manualmente,

Após inserir a data manualmente, ele exibe o trimestre da data em uma caixa de mensagem. Isso pode ser mostrado na imagem abaixo.

Como o mês de junho está no 2º trimestre, é exibido o 2º trimestre, conforme mostrado na captura de tela acima.
Exemplo # 3
Neste exemplo, todos os valores serão preenchidos nas células.
Código:
Private Sub Workbook_Open () Dim DummyDate As Date DummyDate = ActiveSheet.Cells (2, 2) ActiveSheet.Cells (2, 2) .Value = Day (DummyDate) ActiveSheet.Cells (3, 2) .Value = Hour (DummyDate) ActiveSheet .Cells (4, 2) .Value = Minute (DummyDate) ActiveSheet.Cells (5, 2) .Value = Month (DummyDate) ActiveSheet.Cells (6, 2) .Value = Weekday (DummyDate) End Sub

The dates are filled in the cells in the excel sheet, for that the code is written as Active Sheet.cells. By this code, the date which is present maybe a year, month, or date can be inserted into the given cells.
For example, in the above screenshot,
The day is to be inserted in the cells ( 2, 2) of the excel sheet. Hence the code is written as “ ActiveSheet.Cells(2, 2).Value = Day(DummyDate) “ .
Run the code using the F5 key or manually, and the result would be as shown below.

It is, by default taking date today, and it is displaying as 30 in (2,6) cell.
Likewise, for all the other data also it can be filled.
Usage of DatePart Function
- DatePart function can be used to display the part of the date as the name indicates, i.e., if only day or month or year of the date needs to be displayed, then this function can be used.
- Esta função também separa data, mês e ano de uma data específica.
- Usando esta função, a data não é apenas separada. Também podemos obter o trimestre, o dia, a hora, o minuto e um segundo.
Coisas para lembrar
- Esta função só pode ser usada como uma função VBA. No Excel normal, isso não pode ser usado.
- As datas fornecidas como um valor nesta função podem ser fornecidas em qualquer formato, como formato mm-dd-aaaa ou formato DD-MM-AAAA etc.
- Esta função irá separar todos os valores separadamente, como data, mês, ano ou hora também uma hora, minuto, segundos também.
- Está organizado em Funções de data e hora no VBA do Microsoft Excel.