VBA Dia da semana - Guia passo a passo para a função de dias da semana em VBA

Função Excel VBA para dias da semana

Dia da semana em VBA é uma função de data e hora que é usada para identificar o dia da semana de uma determinada data fornecida como uma entrada, esta função retorna um valor inteiro de 1 a 7 no intervalo, há um argumento opcional fornecido para esta função que é o primeiro dia da semana, mas se não fornecermos o primeiro dia da semana, a função assume domingo como o primeiro dia da semana por padrão.

Podemos dizer o número do dia da semana olhando para uma data específica? Sim, podemos dizer o número do dia dessa semana, dependendo do dia de início da semana. Em funções regulares de planilha, temos uma função chamada WEEKDAY no excel para dizer o número da semana para uma data específica. No VBA, também, temos a mesma função para encontrar a mesma coisa.

O que a função Weekday faz?

A função de dia da semana retorna o número do dia da data fornecida na semana. Por exemplo, se você tem datas 01 st Abril a 07 th abril e se você quiser saber o dia da data 05 th abril, se o dia de início da semana é de segunda-feira, é o 5 º dia.

Para encontrar isso, temos a mesma função de “Dia da semana” em uma planilha e também no VBA. Abaixo está a sintaxe da função.

Data: para qual data estamos tentando encontrar o dia da semana. Esta deve ser uma data adequada com o formato correto.

(Primeiro Dia da Semana): Para determinar o dia da semana da Data fornecida , devemos mencionar qual é o primeiro dia da semana. Por padrão, o VBA considera “segunda-feira” como o dia de início da semana. Além disso, podemos fornecer os dias abaixo também.

Exemplos

Exemplo 1

Para iniciar o processo, deixe-me começar com um exemplo simples primeiro. Agora tentaremos encontrar o dia da semana para a data “10-abril-2019”.

Etapa 1: definir a variável como string

Código:

Sub Weekday_Example1 () Dim k As String End Sub
Etapa 2: Atribuir valor à variável

Atribua o valor à variável “k” aplicando a função WEEKDAY.

Código:

Sub Weekday_Example1 () Dim k As String k = Weekday (End Sub
Etapa 3: Insira a data na função

A data que estamos testando aqui é “10-abr-2019”, então passe a data para “10-abr-2019”.

Código:

Sub Weekday_Example1 () Dim k As String k = Weekday ("10-Abr-2019" End Sub
Etapa 4: Mostrar o valor da variável em MsgBox

Por padrão, o primeiro dia da semana é considerado "segunda-feira", portanto, ignore esta parte. Feche o suporte. A próxima linha mostra o valor da variável “k” na caixa de mensagem do VBA.

Código:

Sub Weekday_Example1 () Dim k As String k = Weekday ("10-Abr-2019") MsgBox k End Sub

Ok, terminamos.

Se executarmos o código, obteremos o resultado como “4” porque a partir de domingo, a data fornecida (10-abr-2019) cai no dia da semana.

Observação: o dia da semana de início do meu sistema é “domingo”.

Da mesma forma, se você alterar o dia de início da semana, ele continuará variando. Abaixo está uma linha de exemplo para o mesmo.

Código:

k = Weekday ("10-Abr-2019", vbMonday) 'Retorna 3 k = Weekday ("10-Abr-2019", vbT Tuesday)' Retorna 2k = Weekday ("10-Abr-2019", vbWed Wednesday) 'Retorna 1 k = Weekday ("10-Abr-2019", vbThucted)' Retorna 7 k = Weekday ("10-Abr-2019", vbFriday) 'Retorna 6 k = Weekday ("10-Abr-2019 ", vbSaturday) 'Retorna 5 k = Weekday (" 10-Abr-2019 ", vbSunday)' Retorna 4

Exemplo # 2 - Chegar quer a data seja no fim de semana ou não

Suponha que você tenha uma data como a abaixo e deseja encontrar a data do próximo fim de semana, então podemos usar a função WEEKDAY para chegar aos resultados.

We need to use WEEKDAY with IF condition and loops to arrive at the result. I have written the code for you to go line by line to get the logic.

Code:

Sub Weekend_Dates() Dim k As Integer For k = 2 To 9 If Weekday(Cells(k, 1).Value, vbMonday) = 1 Then Cells(k, 2).Value = Cells(k, 1) + 5 ElseIf Weekday(Cells(k, 1).Value, vbMonday) = 2 Then Cells(k, 2).Value = Cells(k, 1) + 4 ElseIf Weekday(Cells(k, 1).Value, vbMonday) = 3 Then Cells(k, 2).Value = Cells(k, 1) + 3 ElseIf Weekday(Cells(k, 1).Value, vbMonday) = 4 Then Cells(k, 2).Value = Cells(k, 1) + 2 ElseIf Weekday(Cells(k, 1).Value, vbMonday) = 5 Then Cells(k, 2).Value = Cells(k, 1) + 1 Else Cells(k, 2).Value = "This is actually the weekend Date" End If Next k End Sub

This will arrive at the results below.

Observe as células B6 e B7. Obtivemos o resultado como "Esta é na verdade a data do fim de semana" porque as datas "04-maio-2019" e "06-abril-2019" são, na verdade, datas de fim de semana, portanto, não há necessidade de mostrar a data do fim de semana para datas de fim de semana. Por padrão, obtemos o resultado assim.

Artigos interessantes...