Как да използвате функцията DateAdd във VBA в Excel

  • Споделя Това
Hugh West

Сайтът Функция DateAdd на VBA е в категорията за дата и час на Excel Функции VBA С помощта на тази функция можем да добавяме или изваждаме години, месеци, дни, тримесечия и дори различни времеви интервали като часове, минути, секунди от дадена дата. Работата с дата и час в ежедневните изчисления за генериране на отчети или извършване на сравнения е често срещан сценарий. В Excel използването на VBA функции за дата и час като функцията DateAdd прави сложни или отнемащи време изчисления.по-ефективно и по-бързо.

Изтегляне на работната тетрадка за упражнения

Изтеглете тази учебна тетрадка, за да се упражнявате, докато четете тази статия.

VBA DateAdd Function.xlsm

Въведение във функцията DateAdd на Excel VBA

Резултат:

дата, към която се добавя или изважда определен интервал от време.

Синтаксис:

DateAdd (интервал, число, дата)

Аргументи:

Аргумент Задължително/незадължително Описание
интервал Изисква се A низ изразяване.

Интервалът от време в различни настройки, който искаме да добавим номер Изисква се A цифров изразяване .

Сайтът номер на интервали да се прибави или извади

Може да бъде положителен - за бъдеще дати

Може да бъде отрицателен - за минало дати дата Изисква се A дата изразяване

Сайтът дата към която интервали са добавен

Настройки:

Сайтът Функция DateAdd има тези настройки на интервала:

Задаване на Описание
yyyy Година
q Квартал
m Месец
y Година на деня
d Ден
w Седмичен ден
ww Седмица
h Час
n Минута
s Втори

Примери за функцията DateAdd в Excel VBA

Формулни изрази на функцията DateAdd на Excel

Има различни начини за поставяне на дата аргумент в Функция DateAdd. Всички те водят до един и същ резултат.

Поставете следното код в Редактор на Visual Basic:

(Как да стартирате код в редактора на Visual Basic)

 Sub add_year() Range("D3") = DateAdd("yyyy", 2, #1/1/2022#) Range("D4") = DateAdd("yyyy", 2, DateSerial(2022, 1, 1)) Range("D5") = DateAdd("yyyy", 2, DateValue("Jan 1, 2022")) Range("D6") = DateAdd("yyyy", 2, Range("B6")) End Sub 

Обяснение :

DateAdd("yyyy",2, един от следните методи)

За да поставим аргумента за датата, можем да използваме различни методи:

  • #1/1/2011#
  • DateSerial( година , месец, ден)
  • DateValue( дата )
  • Обхват ("клетка") - Дата, съхранена в клетка
  • Съхраняване на датата в променлива

В клетките D3, D4, D5, D6, D7 поставяме горните методи като дата аргумент на DateAdd функция последователно и получи същия резултат.

Добавихме 2 повече години към 1/1/2022 което доведе до 1/1/2024.

Тук,

yyyy представлява година като интервал

2 представлява броя на интервалите като номер .

Помощ: Как да стартирате код в редактора на Visual Basic

Следвайте стъпките:

  • От Лентата на Excel , отидете на Таб Разработчик и изберете Visual Basic Таб.

  • В новия прозорец щракнете върху Вмъкване на и изберете Модул.

  • Напишете своя код в редактора и натиснете F5 към бягане.

Добавяне на различни настройки на интервалите с помощта на функцията DateAdd в Excel

1. Добавяне на година

Код:

 Sub DateAdd_Years() Range("F5") = DateAdd("yyyy", 2, Range("D5")) End Sub 

Резултат: 2 години добавени към 1/1/2022 (мм/дд/гггг) и доведе до 1/1/2024 (мм/дд/гггг).

Прочетете повече: Как да използвате функцията Year в Excel VBA

2. Добавяне на квартал

Код:

 Sub DateAdd_Quarters() Range ("F5") = DateAdd("q", 2, Range("D5")) End Sub 

Резултат: 2 тримесечия = 6 месеца добавени към 1/1/2022 (мм/дд/гггг) и доведе до 7/1/2022 (мм/дд/гггг).

3. Добавяне на месец

Код:

 Sub DateAdd_Months() Range("F5") = DateAdd("m", 2, Range("D5")) End Sub 

Резултат: 2 месеца добавени към 1/1/2022 (мм/дд/гггг) и доведе до 3/1/2022 (мм/дд/гггг).

Прочетете повече: Как да използвате функцията Excel VBA MONTH

4. Добавяне на ден от годината

Код:

 Sub DateAdd_DayOfYear() Range("F5") = DateAdd("y", 2, Range("D5")) End Sub 

Резултат : 2 Добавен ден от годината към 1/1/2022 (мм/дд/гггг) и доведе до 1/3/2022 (мм/дд/гггг).

Прочетете повече: Как да използвате функцията Ден в Excel VBA

5. Добавяне на ден

Код:

 Sub DateAdd_Day() Range("F5") = DateAdd("d", 2, Range("D5")) End Sub 

Резултат: добавени 2 дни към 1/1/2022 (мм/дд/гггг) и доведе до 1/3/2022 (мм/дд/гггг).

Подобни четива

  • Excel VBA за намиране на номер на седмица (6 бързи примера)
  • Как да използвате функцията DatePart във VBA в Excel (7 примера)
  • Използване на функцията VBA DateSerial в Excel (5 лесни приложения)
  • Как да конвертираме дата от низ с помощта на VBA (7 начина)

6. Добавяне на работен ден

Код:

 Sub DateAdd_WeekDay() Range("F5") = DateAdd("w", 10, Range("D5")) End Sub 

Резултат: добавени са 10 WeekDays към 1/1/2022 (мм/дд/гггг) и доведе до 1/11/2022 (мм/дд/гггг).

7. Добавяне на седмица

Код:

 Sub DateAdd_Weeks() Range("F5") = DateAdd("ww", 2, Range("D5")) End Sub 

Резултат: добавени 2 седмици= 14 дни към 1/1/2022 (мм/дд/гггг) и доведе до 1/15/2022 (мм/дд/гггг).

Прочетете повече: Как да получите деня от седмицата с помощта на VBA

8. Добавяне на час

Код:

 Sub DateAdd_Hours() Range("F5") = DateAdd("h", 14, Range("D5")) End Sub 

Резултат: добавени 14 часа към 1/1/2022 12:00 Ч. (mm/dd/yyyy: hh/mm) и доведе до 1/1/2022 14:00 Ч. (mm//dd/yyyy : hh/mm).

9. Добавяне на минута

Код:

 Sub DateAdd_Minutes() Range("F5") = DateAdd("n", 90, Range("D5")) End Sub 

Резултат: добавени 90 минути = 1,30 часа към 1/1/2022 12:00 Ч. (мм/дд/гггг) и доведе до 1/1/2022 1:30 Ч. (мм/дд/гггг).

10. Добавяне на втори

Код:

 Sub DateAdd_Seconds() Range("F5") = DateAdd("s", 120, Range("D5")) End Sub 

Резултат: 120 секунди = 2 добавени минути към 1/1/2022 12:00 Ч. (mm/dd/yyyy : hh/mm) и доведе до 1/1/2022 12:02 Ч. (mm//dd/yyyy : hh/mm).

Използване на функцията DateAdd в Excel за изваждане на различни настройки на интервала

По същия начин можем да изваждане години, месеци, дни, часове, минути и т.н. от дадена дата с помощта на знак минус в преден на аргумент за число Например:

Код:

 Sub DateAdd_Subtract_Years() Range("F5") = DateAdd("y", -2, Range("D5")) End Sub 

Резултат: 2 години изваден от 1/1/2022 (мм/дд/гггг) и доведе до 1/1/2020 (мм/дд/гггг).

Нещата, които трябва да запомните

  • Когато използваме 'w' да добавите работни дни тя се натрупва всички дни от седмицата включително събота и неделя, а не само работните дни (както може би някой очаква).
  • Функцията DateAdd в крайна сметка не показва невалидна дата Например, ако добавим 1 месец към 31 януари 2022 г., резултатът ще бъде 28 февруари 2022 г., а не 31 февруари 2022 г.(не съществува).
  • Ако извадим повече от 122 години от сега. грешка ще се появи, защото датата в Excel започва от 1 януари 1990 г.
  • Датата на връщане на функцията DateAdd зависи от Панел за управление Настройки на датата.
  • Аргументът за дата на функцията DateAdd трябва да бъде в съответствие с Собственост на календара . Ако календарът е Грегориански , входът da аргумент те също трябва да бъде в Грегориански . По същия начин, ако календарът е в Хиджра, аргументът за датата трябва да бъде в същия формат.

Заключение

Сега вече знаем как да използваме функцията DateAdd на VBA в Excel. Надяваме се, че това ще ви насърчи да използвате тази функция по-уверено. Ако имате въпроси или предложения, не забравяйте да ги поставите в полето за коментари по-долу

Хю Уест е опитен обучител и анализатор на Excel с над 10 години опит в индустрията. Има бакалавърска степен по счетоводство и финанси и магистърска степен по бизнес администрация. Хю има страст към преподаването и е разработил уникален подход на преподаване, който е лесен за следване и разбиране. Неговите експертни познания по Excel са помогнали на хиляди студенти и професионалисти по целия свят да подобрят уменията си и да постигнат отлични резултати в кариерата си. Чрез своя блог Хю споделя знанията си със света, като предлага безплатни уроци за Excel и онлайн обучение, за да помогне на хората и фирмите да достигнат пълния си потенциал.