Neste tutorial, veremos as diferentes funções de data do VBA integradas.
Função de data VBA
Você pode usar a função de data para retornar a data atual.
A sintaxe da função Date é Date (). Não tem argumentos.
O código a seguir mostra como usar a função Date:
12345678 | Sub UsingTheDateFunction ()Dim theDate As DatetheDate = Date ()Debug.Print theDateEnd Sub |
O resultado é:
Função VBA Now
Você pode usar a função Now para retornar a data e hora atuais.
A sintaxe da função Now é Now (). Não tem argumentos.
O código a seguir mostra como usar a função Now:
12345678 | Sub UsingTheNowFunction ()Dim theDate As DatetheDate = Now ()Debug.Print theDateEnd Sub |
O resultado é:
Função de tempo VBA
Você pode usar a função de hora para retornar a hora atual.
A sintaxe da função Time é Time (). Não tem argumentos.
O código a seguir mostra como usar a função de tempo:
12345678 | Sub UsingTheTimeFunction ()Dim theTime As DatetheTime = Time ()Debug.Print theTimeEnd Sub |
O resultado é:
Função VBA DateAdd
Você pode usar a função DateAdd para adicionar um intervalo de data / hora a uma data ou hora, e a função retornará a data / hora resultante.
A sintaxe da função DateAdd é:
DateAdd (intervalo, número, data) onde:
- Intervalo - uma string que especifica o tipo de intervalo a ser usado. O intervalo pode ser um dos seguintes valores:
“D” - dia
“Ww” - semana
“W” - dia da semana
“M” - mês
“Q” - quarto
“Aaaa” - ano
“Y” - dia do ano
“H” - hora
“N” - minuto
“S” - segundo
- Número - o número de intervalos que você deseja adicionar à data / hora original.
- Data - a data / hora original.
Nota: Ao usar datas em seu código, você deve colocá-las entre # ou aspas.
O código a seguir mostra como usar a função DateAdd:
123456789 | Sub UsingTheDateAddFunction ()Dim laterDate As DatelaterDate = DateAdd ("m", 10, "11/12/2019")Debug.Print laterDateEnd Sub |
O resultado é:
Função VBA DateDiff
Você pode usar a função DateDiff para obter a diferença entre duas datas, com base em um intervalo de tempo especificado.
A sintaxe da função DateDiff é:
DateDiff (Interval, Date1, Date2, [Firstdayofweek], [Firstweekofyear]) onde:
- Intervalo - uma string que especifica o tipo de intervalo a ser usado. O intervalo pode ser um dos seguintes valores:
“D” - dia
“Ww” - semana
“W” - dia da semana
“M” - mês
“Q” - quarto
“Aaaa” - ano
“Y” - dia do ano
“H” - hora
“N” - minuto
“S” - segundo
- Date1 - um valor de data que representa a data anterior.
- Date2 - um valor de data que representa a data posterior.
- Primeiro dia da semana (Opcional) - Uma constante que especifica o dia da semana que a função deve usar como o primeiro dia da semana. Se o domingo em branco for usado como o primeiro dia da semana. Firstdayofweek pode ser um dos seguintes valores:
-vbSunday - usa o domingo como o primeiro dia da semana.
-vbMonday - usa segunda-feira como o primeiro dia da semana.
-vbTmana - usa terça-feira como o primeiro dia da semana.
-vbWed Wednesday - usa quarta-feira como o primeiro dia da semana.
-vbThursday - usa quinta-feira como o primeiro dia da semana.
-vbFriday - usa sexta-feira como o primeiro dia da semana.
-vbSaturday - usa o sábado como o primeiro dia da semana.
-vbUseSystemDayOfTheWeek - usa o primeiro dia da semana que é especificado pelas configurações do seu sistema.
- Primeira semana do ano (Opcional) - Uma constante que especifica a primeira semana do ano. Se estiver em branco, a primeira semana de janeiro será usada como a primeira semana do ano. A primeira semana do ano pode ser um dos seguintes valores:
-vbFirstJan1 - usa a semana que contém 1º de janeiro.
-vbFirstFourDays - usa a primeira semana que contém pelo menos quatro dias no ano novo.
-vbFirstFullWeek - usa a primeira semana inteira do ano.
-vbSystem - usa a primeira semana do ano conforme especificado nas configurações do sistema.
O código a seguir mostra como usar a função DateDiff:
123456789 | Sub UsingTheDateDiffFunction ()Dim theDifferenceBetweenTwoDates enquanto longotheDifferenceBetweenTwoDates = DateDiff ("q", "11/11/2010", "12/10/2012")Debug.Print theDifferenceBetweenTwoDatesEnd Sub |
O resultado é:
Função VBA DatePart
Você pode usar a função DatePart para retornar uma parte (dia, semana, trimestre, mês, etc.) de uma determinada data.
A sintaxe da função DatePart é:
DatePart (Interval, Date, [Firstdayofweek], [Firstweekofyear]) onde:
- Intervalo - uma string que especifica a parte da data a ser retornada. O intervalo pode ser um dos seguintes valores:
“D” - dia
“Ww” - semana
“W” - dia da semana
“M” - mês
“Q” - quarto
“Aaaa” - ano
“Y” - dia do ano
“H” - hora
“N” - minuto
“S” - segundo
- Data - a data da qual você deseja que a função retorne uma parte.
- Primeiro dia da semana (Opcional) - Uma constante que especifica o dia da semana que a função deve usar como o primeiro dia da semana. Se o domingo em branco for usado como o primeiro dia da semana. Firstdayofweek pode ser um dos seguintes valores:
-vbSunday - usa o domingo como o primeiro dia da semana.
-vbMonday - usa segunda-feira como o primeiro dia da semana.
-vbTmana - usa terça-feira como o primeiro dia da semana.
-vbWed Wednesday - usa quarta-feira como o primeiro dia da semana.
-vbThursday - usa quinta-feira como o primeiro dia da semana.
-vbFriday - usa sexta-feira como o primeiro dia da semana.
-vbSaturday - usa o sábado como o primeiro dia da semana.
-vbUseSystemDayOfTheWeek - usa o primeiro dia da semana que é especificado pelas configurações do seu sistema.
- Primeira semana do ano (Opcional) - Uma constante que especifica a primeira semana do ano. Se estiver em branco, a primeira semana de janeiro será usada como a primeira semana do ano. A primeira semana do ano pode ser um dos seguintes valores:
-vbFirstJan1 - usa a semana que contém 1º de janeiro.
-vbFirstFourDays - usa a primeira semana que contém pelo menos quatro dias no ano novo.
-vbFirstFullWeek - usa a primeira semana inteira do ano.
-vbSystem - usa a primeira semana do ano conforme especificado nas configurações do sistema.
O código a seguir mostra como usar a função DatePart:
123456789 | Sub UsingTheDatePartFunction ()Dim thePartOfTheDate As IntegerthePartOfTheDate = DatePart ("aaaa", "12/12/2009")Debug.Print thePartOfTheDateEnd Sub |
O resultado é:
Função VBA DateSerial
A função VBA DateSerial leva um ano, mês e dia de entrada e retorna uma data.
A sintaxe da função DateSerial é:
DateSerial (ano, mês, dia) onde:
- Ano - um valor inteiro entre 100 e 9999 que representa o ano.
- Mês - um valor inteiro que representa o mês.
- Dia - um valor inteiro que representa o dia.
O código a seguir mostra como usar a função DateSerial:
123456789 | Sub UsingTheDateSerialFunction ()Dim theDate As DatetheDate = DateSerial (2010, 11, 10)Debug.Print theDateEnd Sub |
O resultado é:
Função VBA DateValue
A função DateValue retorna uma data quando é fornecida uma representação de string de uma data.
A sintaxe da função DateValue é:
DateValue (Date) onde:
- Data - uma string que representa a data.
O código a seguir mostra como usar a função DateValue:
123456789 | Sub UsingTheDateValueFunction ()Dim theDate As DatetheDate = DateValue ("29 de outubro de 2010")Debug.Print theDateEnd Sub |
O resultado é:
Função VBA Day
Você pode usar a função Day para retornar o dia de uma data inserida.
A sintaxe da função Day é:
Dia (Date_value) onde:
- Date_value - a data da qual você deseja extrair o dia.
O código a seguir mostra como usar a função Day:
123456789 | Sub UsingTheDayFunction ()Dim theDay As IntegertheDay = Day ("10/12/2010")Debug.Print theDayEnd Sub |
O resultado é:
Função VBA Hour
Você pode usar a Função Hora para retornar a hora de uma hora inserida.
A sintaxe da Função Hora é:
Hora (hora) onde:
- Hora - a hora da qual você deseja extrair a hora.
O código a seguir mostra como usar a Função Hora:
123456789 | Sub UsingTheHourFunction ()Dim theHour As IntegertheHour = Hour ("2:14:17 AM")Debug.Print theHourEnd Sub |
O resultado é:
Função Minuto VBA
Você pode usar a função de minuto para retornar o valor do minuto de um tempo de entrada.
A sintaxe da Função Minuto é:
Minuto (tempo) onde:
- Hora - a hora da qual você deseja extrair o valor do minuto.
O código a seguir mostra como usar a função Minute:
123456789 | Sub UsingTheMinuteFunction ()Dim theMinuteValue As IntegertheMinuteValue = Minute ("2:14:17 AM")Debug.Print theMinuteValueEnd Sub |
O resultado é:
Segunda Função VBA
Você pode usar a segunda função para retornar o segundo valor de um tempo de entrada.
A sintaxe da segunda função é:
Segundo (tempo) onde:
- Hora - a hora da qual você deseja extrair o segundo valor.
O código a seguir mostra como usar a segunda função:
123456789 | Sub UsingTheSecondFunction ()Dim theSecondValue As IntegertheSecondValue = Second ("2:14:17 AM")Debug.Print theSecondValueEnd Sub |
O resultado é:
Função Mês VBA
Você pode usar a função de mês para retornar o mês de uma data de entrada.
A sintaxe da Função Mês é:
Mês (Date_value) onde:
- Date_value - a data da qual você deseja extrair o mês.
O código a seguir mostra como usar a Função Mês:
12345678 | Sub UsingTheMonthFunction ()Dim theMonth As IntegertheMonth = Month ("18/11/2010")Debug.Print theMonthEnd Sub |
O resultado é:
Função VBA MonthName
Você pode usar a função MonthName para retornar o nome de um mês a partir de um número de mês fornecido pela entrada.
A sintaxe da função MonthName é:
MonthName (Number_of_month, [abreviar]) onde:
- Numero_do_mês - um valor inteiro entre 1 e 12.
- Abreviar (Opcional) - Especifica se o nome do mês deve ser abreviado. Se estiver em branco, o valor padrão False será usado.
12345678 | Sub UsingTheMonthNameFunction ()Dim theMonthName As StringtheMonthName = MonthName (12, True)Debug.Print theMonthNameEnd Sub |
O resultado é:
Função VBA TimeSerial
A função TimeSerial leva uma hora, minuto e segundo de entrada e retorna uma hora.
A sintaxe da função TimeSerial é:
TimeSerial (hora, minuto, segundo) onde:
- Hora - um valor inteiro entre 0 e 23 que representa o valor da hora.
- Minuto - um valor inteiro entre 0 e 59 que representa o valor do minuto.
- Segundo - um valor inteiro entre 0 e 59 que representa o segundo valor.
O código a seguir mostra como usar a função TimeSerial:
12345678 | Sub UsingTheTimeSerialFunction ()Dim theTime As DatetheTime = TimeSerial (1, 10, 15)Debug.Print theTimeEnd Sub |
O resultado é:
Função VBA TimeValue
A função TimeValue retorna um Time de uma representação de string de uma data ou hora.
A sintaxe da função TimeValue é:
TimeValue (Time) onde:
- Time - uma string que representa o tempo.
O código a seguir mostra como usar a função TimeValue:
12345678 | Sub UsingTheTimeValueFunction ()Dim theTime As DatetheTime = TimeValue ("22:10:17")Debug.Print theTimeEnd Sub |
O resultado é:
Função VBA Dia da Semana
Você pode usar a função Weekday para retornar um número inteiro de 1 a 7 representando um dia da semana a partir de uma data inserida.
A sintaxe da função Weekday é:
Dia da semana (data, [primeiro dia da semana]) onde:
- Data - a data da qual você deseja extrair o valor do dia da semana.
- Primeiro dia da semana (Opcional) - Uma constante que especifica o dia da semana que a função deve usar como o primeiro dia da semana. Se o domingo em branco for usado como o primeiro dia da semana. Firstdayofweek pode ser um dos seguintes valores:
-vbSunday - usa o domingo como o primeiro dia da semana.
-vbMonday - usa segunda-feira como o primeiro dia da semana.
-vbTmana - usa terça-feira como o primeiro dia da semana.
-vbWed Wednesday - usa quarta-feira como o primeiro dia da semana.
-vbThursday - usa quinta-feira como o primeiro dia da semana.
-vbFriday - usa sexta-feira como o primeiro dia da semana.
-vbSaturday - usa o sábado como o primeiro dia da semana.
-vbUseSystemDayOfTheWeek - usa o primeiro dia da semana que é especificado pelas configurações do seu sistema.
O código a seguir mostra como usar a função Weekday:
1234567 | Sub UsingTheWeekdayFunction ()Dim theWeekDay As IntegertheWeekDay = Dia da semana ("20/11/2019")Debug.Print theWeekDayEnd Sub |
O resultado é:
Função VBA WeekdayName
Você pode usar a função WeekdayName para retornar o nome de um dia da semana a partir de um número do dia da semana fornecido pela entrada.
A sintaxe da função WeekdayName é:
WeekdayName (Weekday, [Abbreviate], [Firstdayoftheweek]) onde:
- Dia da semana - um valor inteiro entre 1 e 7.
- Abreviar (Opcional) -Especifica se o nome do dia da semana deve ser abreviado. Se estiver em branco, o valor padrão False será usado.
- Primeiro dia da semana (Opcional) - Uma constante que especifica o dia da semana que a função deve usar como o primeiro dia da semana. Se o domingo em branco for usado como o primeiro dia da semana. Firstdayofweek pode ser um dos seguintes valores:
-vbSunday - usa o domingo como o primeiro dia da semana.
-vbMonday - usa segunda-feira como o primeiro dia da semana.
-vbTmana - usa terça-feira como o primeiro dia da semana.
-vbWed Wednesday - usa quarta-feira como o primeiro dia da semana.
-vbThursday - usa quinta-feira como o primeiro dia da semana.
-vbFriday - usa sexta-feira como o primeiro dia da semana.
-vbSaturday - usa o sábado como o primeiro dia da semana.
-vbUseSystemDayOfTheWeek - usa o primeiro dia da semana que é especificado pelas configurações do seu sistema.
12345678 | Sub UsingTheWeekdayNameFunction ()Dim theWeekdayName As StringtheWeekdayName = WeekdayName (4)Debug.Print theWeekdayNameEnd Sub |
O resultado é:
Função de ano VBA
Você pode usar a função Year para retornar o ano de uma data de entrada.
A sintaxe da função Year é:
Ano (Date_value) onde:
- Date_value - a data da qual você deseja extrair o ano.
O código a seguir mostra como usar a função Year:
12345678 | Sub UsingTheYearFunction ()Dim theYear As IntegertheYear = Year ("11/12/2010")Debug.Print theYearEnd Sub |
O resultado é:
Comparando datas em VBA
Você pode comparar datas usando os operadores>, <e = no VBA. O código a seguir mostra como comparar duas datas no VBA.
12345678910111213141516171819 | Sub ComparingDates ()Dim dateUma como dataDim dateDuas como datadateOne = "10/10/2010"dateTwo = "11/11/2010"Se dateOne> dateTwo ThenDebug.Print "dateOne é a data posterior"ElseIf dateOne = dateTwo ThenDebug.Print "As duas datas são iguais"OutroDebug.Print "dateTwo é a data posterior"Fim seEnd Sub |
Saiba mais sobre como formatar datas como strings visualizando este tutorial.