Vba excel вставить дату в ячейку
Как автоматически добавить / ввести текущую дату / время в ячейку двойным щелчком в Excel?
Если вам нужно часто вставлять текущую дату или дату и время на лист, вы можете попробовать метод, описанный в этой статье. Эта статья поможет вам автоматически добавлять или вводить текущую дату или дату в ячейках указанного диапазона с помощью только двойного щелчка.
Дважды щелкните, чтобы автоматически добавить / ввести текущую дату или дату и время с кодом VBA
Удивительный! Использование эффективных вкладок в Excel, таких как Chrome, Firefox и Safari!
Экономьте 50% своего времени и сокращайте тысячи щелчков мышью каждый день!
Вы можете запустить приведенный ниже код VBA, чтобы автоматически добавить текущую дату или дату и время в ячейку двойным щелчком. Пожалуйста, сделайте следующее.
1. Щелкните правой кнопкой мыши вкладку «Лист», на которой вы хотите вставить текущую дату в указанные ячейки, затем выберите Просмотреть код из контекстного меню.
2. в Microsoft Visual Basic для приложений окна, скопируйте и вставьте приведенный ниже код VBA в окно кода.
Код VBA: дважды щелкните, чтобы добавить текущую дату в ячейку
Заметки:
2. Если вам нужно добавить текущую дату и время в ячейку, замените Время с Теперь() в коде. Вы можете изменить их по своему усмотрению.
3. Нажмите другой + Q клавиши одновременно, чтобы закрыть Microsoft Visual Basic для приложений окно и вернитесь к рабочему листу.
С этого момента при двойном щелчке по любой ячейке в указанном диапазоне A1: B10. Текущая дата или дата и время будут введены автоматически.
Статьи по теме:
Лучшие инструменты для работы в офисе
Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма .
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон .
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы . Предотвращение дублирования ячеек; Сравнить диапазоны .
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор .
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули , Флажки и многое другое .
- Извлечь текст , Добавить текст, Удалить по позиции, Удалить пробел ; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии .
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом .
- Комбинируйте книги и рабочие листы ; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов ; Пакетное преобразование xls, xlsx и PDF . Pivot Table Grouping by week number, day of week and more. Show Unlocked, Locked Cells by different colors; Highlight Cells That Have Formula/Name . -->
- Более 300 мощных функций . Поддерживает Office / Excel 2007-2019 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint , Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Как мы можем расширить это, чтобы добавить больше диапазона ячеек? Я добавил эти дополнительные ячейки в код: (Цель, Диапазон («C10: C19», «D10: D19», «E10: E19»)), однако это дает мне ошибку компиляции, говорящую «неправильное количество аргументов или недопустимые назначения свойств», а затем выделяет первую строку кода, которую вы предоставили: «Private Sub Worksheet_BeforeDoubleClick (ByVal Target As Range, Cancel As Boolean)». Пожалуйста, помогите мне.
Джоэл, не знаю, ищете ли вы еще решение, но вам нужно изменить свой код:
От: (Цель, Диапазон("C10:C19", "D10:D19", "E10:E19"))
Кому: (Цель, Диапазон("C10:C19,D10:D19,E10:E19"))
Это сделает это за вас.
Дорогой Аттила,
Пожалуйста, попробуйте приведенный ниже снимок экрана, чтобы вставить фактическое время в ячейку в определенном диапазоне при нажатии.
(Функция автоматической блокировки ячеек не может быть достигнута, извините за это)
Private Sub Worksheet_SelectionChange (ByVal Target As Range)
Приложение.ScreenUpdating = False
Если Не Пересечь(Цель, Диапазон("A1:B10")) Ничего, Тогда
Отмена = True
Цель.Формула = Дата
End If
End Sub
Код действительно работает. Спасибо. я добавил еще один код для защиты ячейки после ввода данных. Теперь проблема в том, что, как только я ввожу данные, а ячейка защищена, и по ошибке, если я дважды щелкну защищенную ячейку, приведенный выше код пойдет не так для всего листа. Тогда это не работает. Мне нужно снять защиту с листа, чтобы запустить код. Любое решение?
Используемый код защиты приведен ниже:
Private Sub Worksheet_Change (ByVal Target As Range)
Dim xRg как диапазон
On Error Resume Next
Установите xRg = пересечение (диапазон ("A1: a1000, b1: b1000, G1: G1000"), цель)
Если xRg ничего не значит, выйдите из Sub
Target.Worksheet.Unprotect Password:="123"
xRg.Locked = Истина
Пароль Target.Worksheet.Protect: = "123"
End Sub
Уважаемый Пол,
Я пробую код, который вы предоставили. Весь рабочий лист будет защищен немедленно, как только я введу данные в любую из указанных защищенных ячеек.
Кроме того, при двойном щелчке по защищенной ячейке в моем случае ничего не меняется в коде.
Не могли бы вы объяснить, что именно вы пытаетесь сделать с кодом?
Созданный двойной щелчок код ввода:
Private Sub Worksheet_BeforeDoubleClick (ByVal Target As Range, Cancel As Boolean)
Если Не Пересечь(Цель, Диапазон("A1:a1000")) Ничего, Тогда
Отмена = True
Цель.Формула = Дата
End If
Если Не Пересекать(Цель, Диапазон("b1:b1000")) Ничего, Тогда
Отмена = True
Цель.Формула = Время
End If
Если Не Пересекать(Цель, Диапазон("g1:g1000")) Ничего, Тогда
Отмена = True
Цель.Формула = Время
End If
End Sub
Уважаемый Пол,
Пожалуйста, попробуйте следующий код VBA.
Private Sub Worksheet_Change (ByVal Target As Range)
Dim xRg как диапазон
On Error Resume Next
Установите xRg = пересечение (диапазон ("A1: a1000, b1: b1000, G1: G1000"), цель)
Если xRg ничего не значит, выйдите из Sub
Target.Worksheet.Unprotect Password:="123"
xRg.Locked = Истина
Пароль Target.Worksheet.Protect: = "123"
End Sub
Private Sub Worksheet_BeforeDoubleClick (ByVal Target As Range, Cancel As Boolean)
Application.EnableEvents = False
Пароль ActiveSheet.Unprotect: = "123"
Если Не Пересечь(Цель, Диапазон("A1:a1000")) Ничего, Тогда
Отмена = True
Цель.Формула = Дата
End If
Если Не Пересекать(Цель, Диапазон("b1:b1000")) Ничего, Тогда
Отмена = True
Цель.Формула = Время
End If
Если Не Пересекать(Цель, Диапазон("g1:g1000")) Ничего, Тогда
Отмена = True
Цель.Формула = Время
End If
Пароль ActiveSheet.Protect: = "123"
Application.EnableEvents = True
End Sub
Date – это функция, которая возвращает значение текущей системной даты. Тип возвращаемого значения – Variant/Date.
Синтаксис
Пример
Функция DateAdd
DateAdd – это функция, которая возвращает результат прибавления к дате указанного интервала времени. Тип возвращаемого значения – Variant/Date.
Синтаксис
Параметры
Параметр | Описание |
---|---|
interval | Обязательный параметр. Строковое выражение из спецсимволов, представляющее интервал времени, который требуется добавить. |
number | Обязательный параметр. Числовое выражение, задающее количество интервалов, которые необходимо добавить. Может быть как положительным (возвращается будущая дата), так и отрицательным (возвращается предыдущая дата). |
date | Обязательный параметр. Значение типа Variant/Date или литерал, представляющий дату, к которой должен быть добавлен интервал. |
Таблицу аргументов (значений) параметра interval смотрите в параграфе «Приложение 1».
Примечание к таблице аргументов: три символа – y, d, w – указывают функции DateAdd на один день, который необходимо прибавить к исходной дате number раз.
Пример
Функция DateDiff
DateDiff – это функция, которая возвращает количество указанных интервалов времени между двумя датами. Тип возвращаемого значения – Variant/Long.
Синтаксис
Параметры
Параметр | Описание |
---|---|
interval | Обязательный параметр. Строковое выражение из спецсимволов, представляющее интервал времени, количество которых (интервалов) требуется вычислить между двумя датами. |
date1, date2 | Обязательные параметры. Значения типа Variant/Date , представляющие две даты, между которыми вычисляется количество указанных интервалов. |
firstdayofweek | Необязательный параметр. Константа, задающая первый день недели. По умолчанию – воскресенье. |
firstweekofyear | Необязательный параметр. Константа, задающая первую неделю года. По умолчанию – неделя, в которую входит 1 января. |
Таблицу аргументов (значений) параметра interval смотрите в параграфе «Приложение 1».
Примечание к таблице аргументов: в отличие от функции DateAdd , в функции DateDiff спецсимвол "w" , как и "ww" , обозначает неделю. Но расчет осуществляется по разному. Подробнее об этом на сайте разработчиков.
Параметры firstdayofweek и firstweekofyear определяют правила расчета количества недель между датами.
Таблицы констант из коллекций firstdayofweek и firstweekofyear смотрите в параграфах «Приложение 2» и «Приложение 3».
UserForm.DTPicker – это элемент управления пользовательской формы, представляющий из себя отформатированное текстовое поле с раскрывающимся календарем, клик по выбранной дате в котором записывает ее в текстовое поле.
При вызове календаря пользовательская форма теряет фокус – это видно на изображении. При редактировании даты непосредственно в текстовом поле DTPicker, формат поля позволяет изменять элементы даты (день, месяц, год) по отдельности.
Чтобы перемещаться между элементами даты, необходимо, или выбирать элемент мышью, или нажимать любой знак разделителя («.», «,» или «/») на клавиатуре. А клик по знаку «+» или «-», соответственно, увеличит или уменьшит значение элемента даты на единицу.
Если в элемент «год» ввести однозначное число или двузначное число, не превышающее двузначный остаток текущего года, через пару секунд автоматически добавятся первые две цифры текущего столетия (20). Если вводимое двузначное число превысит двузначный остаток текущего года, автоматически добавятся первые две цифры прошлого столетия (19).
DTPicker – это сокращение от слова DateTimePicker, не являющегося в VBA Excel ключевым словом, как и DatePicker.
Добавление DTPicker на Toolbox
Изначально на панели инструментов Toolbox нет ссылки на элемент управления DTPicker, поэтому ее нужно добавить самостоятельно.
Чтобы добавить DTPicker на панель инструментов Toolbox, кликните по ней правой кнопкой мыши и выберите из контекстного меню ссылку «Additional Controls…»:
В открывшемся окне «Additional Controls» из списка дополнительных элементов управления выберите строку «Microsoft Date and Time Picker Control»:
Свойства поля с календарем
Свойство | Описание |
---|---|
CalendarBackColor | Заливка (фон) календаря без заголовка. |
CalendarForeColor | Цвет шрифта чисел выбранного в календаре месяца. |
CalendarTitleBackColor | Заливка заголовка календаря и фон выбранной даты. |
CalendarTitleForeColor | Цвет шрифта заголовка (месяц и год) и выбранного в календаре числа. |
CalendarTrailingForeColor | Цвет шрифта чисел предыдущего и следующего месяца. |
CheckBox | В значении True отображает встроенный в DTPicker элемент управления CheckBox. По умолчанию – False. |
ControlTipText | Текст всплывающей подсказки при наведении курсора на DTPicker. |
CustomFormat | Пользовательский формат даты и времени. Работает, когда свойству Format присвоено значение dtpCustom (3). |
Day (Month, Year) | Задает или возвращает день (месяц, год). |
DayOfWeek | Задает или возвращает день недели от 1 до 7, отсчет начинается с воскресенья. |
Enabled | Возможность раскрытия календаря, ввода и редактирования даты/времени. True – все перечисленные опции включены, False – выключены (элемент управления становится серым). |
Font | Шрифт отображаемого значения в отформатированном поле элемента управления. |
Format | Формат отображаемого значения в поле элемента управления DTPicker, может принимать следующие значения: dtpCustom (3), dtpLongDate (0), dtpShortDate (1) (по умолчанию) и dtpTime (2). |
Height | Высота элемента управления DTPicker с нераскрытым календарем. |
Hour (Minute, Second) | Задает или возвращает часы (минуты, секунды). |
Left | Расстояние от левого края внутренней границы пользовательской формы до левого края элемента управления. |
MaxDate | Максимальное значение даты, которое может быть выбрано в элементе управления (по умолчанию – 31.12.9999). |
MinDate | Минимальное значение даты, которое может быть выбрано в элементе управления (по умолчанию – 01.01.1601). |
TabIndex | Определяет позицию элемента управления в очереди на получение фокуса при табуляции, вызываемой нажатием клавиш «Tab», «Enter». Отсчет начинается с нуля. |
Top | Расстояние от верхнего края внутренней границы пользовательской формы до верхнего края элемента управления. |
UpDown | Отображает счетчик вместо раскрывающегося календаря. True – отображается SpinButton, False – отображается календарь (по умолчанию). |
Value | Задает или возвращает значение (дата и/или время) элемента управления. |
Visible | Видимость поля с календарем. True – DTPicker отображается на пользовательской форме, False – DTPicker скрыт. |
Width | Ширина элемента управления DTPicker с нераскрытым календарем. |
DTPicker – это сокращение от слова DateTimePicker, не являющегося в VBA Excel ключевым словом, как и DatePicker.
Примеры кода VBA Excel с DTPicker
Программное создание DTPicker
Динамическое создание элемента управления DTPicker с помощью кода VBA Excel на пользовательской форме с любым именем:
Данный код должен быть размещен в модуле формы. Результат работы кода:
Применение свойства CustomFormat
Чтобы задать элементу управления DTPicker пользовательский формат отображения даты и времени, сначала необходимо присвоить свойству Format значение dtpCustom. Если этого не сделать, то, что бы мы не присвоили свойству CustomFormat, будет применен формат по умолчанию (dtpShortDate) или тот, который присвоен свойству Format.
В данном примере создается пользовательский формат для полей с календарем DTPicker1 и DTPicker2, размещенных на пользовательской форме, и отображаются в них текущие дата и время.
Результат работы кода:
Таблица специальных символов и строк, задающих пользовательский формат даты и времени (регистр символов имеет значение):
Символы и строки | Описание |
---|---|
d | День месяца из одной или двух цифр. |
dd | День месяца из двух цифр. К числу из одной цифры впереди добавляется ноль. |
ddd | Сокращенное название дня недели из двух символов (Пн, Вт и т.д.). |
dddd | Полное название дня недели. |
h | Час из одной или двух цифр в 12-часовом формате. |
hh | Час из двух цифр в 12-часовом формате. К часу из одной цифры впереди добавляется ноль. |
H | Час из одной или двух цифр в 24-часовом формате. |
HH | Час из двух цифр в 24-часовом формате. К часу из одной цифры впереди добавляется ноль. |
m | Минута из одной или двух цифр. |
mm | Минута из двух цифр. К минуте из одной цифры впереди добавляется ноль. |
M | Месяц из одной или двух цифр. |
MM | Месяц из двух цифр. К месяцу из одной цифры впереди добавляется ноль. |
MMM | Сокращенное название месяца из трех символов. |
MMMM | Полное название месяца. |
s | Секунда из одной или двух цифр. |
ss | Секунда из двух цифр. К секунде из одной цифры впереди добавляется ноль. |
y | Год из одной или двух последних цифр. |
yy | Год из двух последних цифр. |
yyyy | Год из четырех цифр. |
Создание границ интервала дат
Простенький пример, как задать интервал дат с начала месяца до текущего дня с помощью двух элементов управления DTPicker:
Результат работы кода, запущенного 23.11.2020:
DTPicker – это сокращение от слова DateTimePicker, не являющегося в VBA Excel ключевым словом, как и DatePicker.
6 комментариев для “VBA Excel. Элемент управления DTPicker”
Здравствуйте, подскажите… Вставил в форму 2 календаря. DTPicker1.Format = dtpShortDate и DTPicker2.Format = dtpTime и вставляю нужное значение в активную ячейку. Но вставляется помимо нужной даты и времени сегодняшняя дата (в свойствах DTPicker2 это Value). Получается например: 15.04.2021 27.04.2021 01:45:00 Как убрать эту лишнюю дату?
Создайте новую книгу Excel. Переименуйте ее в “Объектная модель”.
Создайте в ней процедуру, которая будет переименовывать первый лист (новое имя листа — “Объектная модель”).
После этого, обращаясь в коде к этому листу по имени, процедура должна заносить в ячейку A1 текущую дату.
Вот как получилось у меня(только учась создавать макросы)
[vba]
Sub unification()
'даем имя листу
Sheets("Лист1").Select
Sheets("Лист1").Name = "Объектная модель"
'на данном листе
Sheets("Объектная модель").Select
'в ячейке А1 вводим формулу тдата
Range("A1").Select
ActiveCell.FormulaR1C1 = "=NOW()"
Но проблема в том, что дата не открывается автоматически. Нужно сделать так, чтобы он начинался автоматически при открытии страницы, и в ячейке A1 прописывалась дата через =NOW()
Подскажите пожалуйста, где ошибка. Спасибо.
Создайте новую книгу Excel. Переименуйте ее в “Объектная модель”.
Создайте в ней процедуру, которая будет переименовывать первый лист (новое имя листа — “Объектная модель”).
После этого, обращаясь в коде к этому листу по имени, процедура должна заносить в ячейку A1 текущую дату.
Вот как получилось у меня(только учась создавать макросы)
[vba]
Sub unification()
'даем имя листу
Sheets("Лист1").Select
Sheets("Лист1").Name = "Объектная модель"
'на данном листе
Sheets("Объектная модель").Select
'в ячейке А1 вводим формулу тдата
Range("A1").Select
ActiveCell.FormulaR1C1 = "=NOW()"
Но проблема в том, что дата не открывается автоматически. Нужно сделать так, чтобы он начинался автоматически при открытии страницы, и в ячейке A1 прописывалась дата через =NOW()
Подскажите пожалуйста, где ошибка. Спасибо. laik
Создайте в ней процедуру, которая будет переименовывать первый лист (новое имя листа — “Объектная модель”).
После этого, обращаясь в коде к этому листу по имени, процедура должна заносить в ячейку A1 текущую дату.
Вот как получилось у меня(только учась создавать макросы)
[vba]
Sub unification()
'даем имя листу
Sheets("Лист1").Select
Sheets("Лист1").Name = "Объектная модель"
'на данном листе
Sheets("Объектная модель").Select
'в ячейке А1 вводим формулу тдата
Range("A1").Select
ActiveCell.FormulaR1C1 = "=NOW()"
Но проблема в том, что дата не открывается автоматически. Нужно сделать так, чтобы он начинался автоматически при открытии страницы, и в ячейке A1 прописывалась дата через =NOW()
Подскажите пожалуйста, где ошибка. Спасибо. Автор - laik
Дата добавления - 01.05.2020 в 09:46
Sub unification() ' с проверкой на то, что первый лист уже называется "Объектная модель"
' но это наверное лишнее, ведь по условию задачи мы книгу только что создали
shn_ = "Объектная модель"
If Sheets(1).Name <> shn_ Then
Sheets(1).Name = shn_
End If
Sheets(shn_).Range("A1") = Date
End Sub
Sub unification1() ' без проверки
Sheets(1).Name = "Объектная модель"
Sheets("Объектная модель").Range("A1") = Date
End Sub
Нужно сделать так, чтобы он (1) начинался автоматически при открытии страницы (2), и в ячейке A1 прописывалась дата через =NOW() (3)
1. Он - это кто? Макрос?
2. Про это в условии ничего не сказано
3. Это будет формула. А у Вас в задании просто заносить дату. Не формулой, а просто дату
Еще
4. Первый лист вовсе не обязательно называется "Лист1". Поэтому работаем не с Sheets("Лист1"), а с листом с индексом, равным 1
5. Select на лист и на ячейку вовсе не обязательны - замедляют работу, ухудшают читабельность кода и вообще моветон
6. Если нужно, чтобы дата изменялась при открытии страницы (предположу, что это значит "при активации листа"), то немного иначе все. Отдельным макросом переименовываем лист, а вторым макросом, лежащим в модуле листа (см. справку), при активации листа переписываем дату
[vba]
[/vba]
7. Если же дату нужно переписывать не при активации листа, а при открытии книги (так было бы грамотнее, если, конечно, книга не бывает открыта в 12 ночи, когда дата сменяется), то код для даты пишем ужа в модуле книги
[vba]
Sub unification() ' с проверкой на то, что первый лист уже называется "Объектная модель"
' но это наверное лишнее, ведь по условию задачи мы книгу только что создали
shn_ = "Объектная модель"
If Sheets(1).Name <> shn_ Then
Sheets(1).Name = shn_
End If
Sheets(shn_).Range("A1") = Date
End Sub
Sub unification1() ' без проверки
Sheets(1).Name = "Объектная модель"
Sheets("Объектная модель").Range("A1") = Date
End Sub
Нужно сделать так, чтобы он (1) начинался автоматически при открытии страницы (2), и в ячейке A1 прописывалась дата через =NOW() (3)
1. Он - это кто? Макрос?
2. Про это в условии ничего не сказано
3. Это будет формула. А у Вас в задании просто заносить дату. Не формулой, а просто дату
Еще
4. Первый лист вовсе не обязательно называется "Лист1". Поэтому работаем не с Sheets("Лист1"), а с листом с индексом, равным 1
5. Select на лист и на ячейку вовсе не обязательны - замедляют работу, ухудшают читабельность кода и вообще моветон
6. Если нужно, чтобы дата изменялась при открытии страницы (предположу, что это значит "при активации листа"), то немного иначе все. Отдельным макросом переименовываем лист, а вторым макросом, лежащим в модуле листа (см. справку), при активации листа переписываем дату
[vba]
[/vba]
7. Если же дату нужно переписывать не при активации листа, а при открытии книги (так было бы грамотнее, если, конечно, книга не бывает открыта в 12 ночи, когда дата сменяется), то код для даты пишем ужа в модуле книги
[vba]
Sub unification() ' с проверкой на то, что первый лист уже называется "Объектная модель"
' но это наверное лишнее, ведь по условию задачи мы книгу только что создали
shn_ = "Объектная модель"
If Sheets(1).Name <> shn_ Then
Sheets(1).Name = shn_
End If
Sheets(shn_).Range("A1") = Date
End Sub
Sub unification1() ' без проверки
Sheets(1).Name = "Объектная модель"
Sheets("Объектная модель").Range("A1") = Date
End Sub
Нужно сделать так, чтобы он (1) начинался автоматически при открытии страницы (2), и в ячейке A1 прописывалась дата через =NOW() (3)
1. Он - это кто? Макрос?
2. Про это в условии ничего не сказано
3. Это будет формула. А у Вас в задании просто заносить дату. Не формулой, а просто дату
Еще
4. Первый лист вовсе не обязательно называется "Лист1". Поэтому работаем не с Sheets("Лист1"), а с листом с индексом, равным 1
5. Select на лист и на ячейку вовсе не обязательны - замедляют работу, ухудшают читабельность кода и вообще моветон
6. Если нужно, чтобы дата изменялась при открытии страницы (предположу, что это значит "при активации листа"), то немного иначе все. Отдельным макросом переименовываем лист, а вторым макросом, лежащим в модуле листа (см. справку), при активации листа переписываем дату
[vba]
[/vba]
7. Если же дату нужно переписывать не при активации листа, а при открытии книги (так было бы грамотнее, если, конечно, книга не бывает открыта в 12 ночи, когда дата сменяется), то код для даты пишем ужа в модуле книги
[vba]
Функции даты и времени VBScript помогают разработчикам преобразовывать дату и время из одного формата в другой или выражать дату или время в формате, соответствующем определенному условию.
Функция возвращает текущую системную дату.
Синтаксис
пример
Добавьте кнопку и добавьте следующую функцию.
Когда вы выполняете функцию, она производит следующий вывод.
The Value of a : 19/07/2014
Функция, которая возвращает текущую системную дату.
CDate
Функция преобразует действительное выражение даты и времени для ввода даты.
Синтаксис
пример
Добавьте кнопку и добавьте следующую функцию.
Когда вы выполняете функцию, она производит следующий вывод.
The Value of a : 1/01/2020
The Value of b : 31/12/2050
Функция, которая преобразует данный вход в дату.
DateAdd
Функция, которая возвращает дату, к которой был добавлен указанный временной интервал.
Синтаксис
Параметр/Описание
- Интервал - требуемый параметр. Он может принимать следующие значения.
- d - день года
- м - месяц года
- y - год года
- yyyy - year
- w - день недели
- ww - неделя
- q - квартал
- час - час
- м - минута
- s - секунда
- Номер - требуемый параметр. Он может принимать как положительные, так и отрицательные параметры.
- Дата - требуемый параметр. Вариант или литерал, представляющий дату добавления интервала.
пример
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
Line 1 : 27/06/1895
Line 2 : 27/09/1894
Line 3 : 27/07/1894
Line 4 : 28/06/1894
Line 5 : 28/06/1894
Line 6 : 28/06/1894
Line 7 : 4/07/1894
Line 8 : 1/01/2013 1:00:00 PM
Line 9 : 1/01/2013 12:01:00 PM
Line 10 : 1/01/2013 12:00:01 PM
Line 11 : 27/06/1893
Line 12 : 27/03/1894
Line 13 : 27/05/1894
Line 14 : 26/06/1894
Line 15 : 26/06/1894
Line 16 : 26/06/1894
Line 17 : 20/06/1894
Line 18 : 1/01/2013 11:00:00 AM
Line 19 : 1/01/2013 11:59:00 AM
Line 20 : 1/01/2013 11:59:59 AM
Функция, которая возвращает дату, к которой был добавлен указанный временной интервал.
DateDiff
Функция, которая возвращает разницу между двумя заданными временными интервалами.
Синтаксис
Параметр/Описание
- Интервал - требуемый параметр. Он может принимать следующие значения.
- d - день года
- м - месяц года
- y - год года
- yyyy - year
- w - день недели
- ww - неделя
- q - квартал
- час - час
- м - минута
- s - секунда
- Date1 и Date2 - Необходимые параметры.
- Firstdayofweek - необязательный параметр. Задает первый день недели. Он может принимать следующие значения.
- 0 = vbUseSystemDayOfWeek - настройка API поддержки национальных языков (NLS)
- 1 = vbSunday - воскресенье
- 2 = vbMonday - понедельник
- 3 = vbTuesday - вторник
- 4 = vbWednesday - среда
- 5 = vbThursday - четверг
- 6 = vbFriday - пятница
- 7 = vbSaturday - суббота
- Firstdayofyear - необязательный параметр. Указывает на первый день года. Он может принимать следующие значения.
- 0 = vbUseSystem - настройка API поддержки национальных языков (NLS)
- 1 = vbFirstJan1 - начать с недели, в которой происходит 1 января (по умолчанию)
- 2 = vbFirstFourDays - Начните с недели, которая имеет не менее четырех дней в новом году
- 3 = vbFirstFullWeek - начните с первой полной недели нового года
пример
Добавьте кнопку и добавьте следующую функцию.
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
Line 1 : 1
Line 2 : 4
Line 3 : 12
Line 4 : 365
Line 5 : 365
Line 6 : 52
Line 7 : 52
Line 8 : 8783
Line 9 : 527039
Line 10 : 31622340
Функция, которая возвращает разницу между двумя периодами времени.
DatePart
Функция, возвращающая определенную часть данной даты.
Синтаксис
Параметр/Описание
- Интервал - требуемый параметр. Он может принимать следующие значения.
- d - день года
- м - месяц года
- y - год года
- yyyy - year
- w - день недели
- ww - неделя
- q - квартал
- час - час
- м - минута
- s - секунда
- Date1 - обязательный параметр.
- Firstdayofweek - необязательный параметр. Задает первый день недели. Он может принимать следующие значения.
- 0 = vbUseSystemDayOfWeek - настройка API поддержки национальных языков (NLS)
- 1 = vbSunday - воскресенье
- 2 = vbMonday - понедельник
- 3 = vbTuesday - вторник
- 4 = vbWednesday - среда
- 5 = vbThursday - четверг
- 6 = vbFriday - пятница
- 7 = vbSaturday - суббота
- Firstdayofyear - необязательный параметр. Указывает на первый день года. Он может принимать следующие значения.
- 0 = vbUseSystem - настройка API поддержки национальных языков (NLS)
- 1 = vbFirstJan1 - начать с недели, в которой происходит 1 января (по умолчанию)
- 2 = vbFirstFourDays - Начните с недели, которая имеет не менее четырех дней в новом году
- 3 = vbFirstFullWeek - начните с первой полной недели нового года
пример
Добавьте кнопку и добавьте следующую функцию.
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
Line 1 : 1
Line 2 : 15
Line 3 : 3
Line 4 : 1
Функция, возвращающая указанную часть заданного значения даты ввода.
DateSerial
Функция, которая возвращает дату для заданных параметров дня, месяца и года.
Синтаксис
Параметр/Описание
- Год - требуемый параметр. Число от 100 до 9999 или числовое выражение. Значения от 0 до 99 интерпретируются как годы с 1900 по 1999 год. Для всех аргументов за другой год используйте полный четырехзначный год.
- Месяц - требуемый параметр. Он также может быть в форме выражения, которое должно варьироваться от 1 до 12.
- День - требуемый параметр. Он также может быть в форме выражения, которое должно варьироваться от 1 до 31.
пример
Добавьте кнопку и добавьте следующую функцию.
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
Функция, которая возвращает действительную дату для данного года, месяца и даты.
FormatDateTime
Функция, которая помогает разработчикам форматировать и возвращать действительное выражение даты и времени.
Синтаксис
Параметр/Описание
- Дата - требуемый параметр.
- Формат - необязательный параметр. Значение, определяющее формат даты или времени, который будет использоваться. Он может принимать следующие значения.
- 0 = vbGeneralDate - Default
- 1 = vbLongDate - дата возврата
- 2 = vbShortDate - Дата возврата
- 3 = vbLongTime - возвращает время
- 4 = vbShortTime - возвращает время
пример
Добавьте кнопку и добавьте следующую функцию.
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
Line 1 : 15/08/2013 8:25:00 PM
Line 2 : Thursday, 15 August 2013
Line 3 : 15/08/2013
Line 4 : 8:25:00 PM
Line 5 : 20:25
Функция, которая форматирует дату на основе поставляемых параметров.
IsDate
Функция, возвращающая логическое значение, независимо от того, является ли данный ввод датой.
Синтаксис
пример
Добавьте кнопку и добавьте следующую функцию.
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
Line 1 : True
Line 2 : True
Line 3 : True
Функция, возвращающая логическое значение, независимо от того, является ли поставленный параметр датой.
Функция «День» возвращает число от 1 до 31, которое представляет день указанной даты.
Синтаксис
пример
Добавьте кнопку и добавьте следующую функцию.
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
Функция, которая возвращает целое число от 1 до 31, которое представляет день указанной даты.
Month
Функция Month возвращает число от 1 до 12, которое представляет месяц указанной даты.
Синтаксис
пример
Добавьте кнопку и добавьте следующую функцию.
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
Функция, которая возвращает целое число от 1 до 12, которое представляет месяц указанной даты.
Функция Год возвращает целое число, которое представляет год указанной даты.
Синтаксис
пример
Добавьте кнопку и добавьте следующую функцию.
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
Функция, которая возвращает целое число, которое представляет год указанной даты.
MonthName
Функция MonthName возвращает имя месяца для указанной даты.
Синтаксис
Параметр Описание
- Месяц - требуемый параметр. Он определяет номер месяца.
- Toabbreviate - необязательный параметр. Булевское значение, указывающее, следует ли сокращать имя месяца. Если оставить пустым, значение по умолчанию будет считаться False.
пример
Добавьте кнопку и добавьте следующую функцию.
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
Line 1 : Jan
Line 2 : January
Line 3 : Jul
Line 4 : July
Функция, которая возвращает имя определенного месяца за указанную дату.
WeekDay
Функция WeekDay возвращает целое число от 1 до 7, которое представляет день недели для указанной даты.
Синтаксис
Параметр/Описание
Добавьте кнопку и добавьте следующую функцию.
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
Line 1: 5 Line 2: 4 Line 3: 4 Line 4: 3 Line 5: 4 Line 6: 5
Функция, которая возвращает целое число (от 1 до 7), которое представляет день недели в течение указанного дня.
WeekDayName
Функция WeekDayName возвращает имя дня недели за указанный день.
Синтаксис WeekdayName(weekday[,abbreviate[,firstdayofweek]])
- Weekday - требуемый параметр. Номер дня недели.
- Toabbreviate - необязательный параметр. Булевское значение, указывающее, следует ли сокращать имя месяца. Если оставить пустым, значение по умолчанию будет считаться False.
- Firstdayofweek - необязательный параметр. Задает первый день недели.
- 0 = vbUseSystemDayOfWeek - настройка API поддержки национальных языков (NLS)
- 1 = vbSunday - воскресенье
- 2 = vbMonday - понедельник
- 3 = vbTuesday - вторник
- 4 = vbWednesday - среда
- 5 = vbThursday - четверг
- 6 = vbFriday - пятница
- 7 = vbSaturday - суббота
пример
Добавьте кнопку и добавьте следующую функцию.
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
Line 1 : Tuesday
Line 2 : Mon
Line 3 : Sunday
Line 4 : Tue
Line 5 : Sunday
Функция, которая возвращает имя дня недели для указанного дня.
Функция Now возвращает текущую системную дату и время.
Синтаксис
пример
Добавьте кнопку и добавьте следующую функцию.
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод. The Value of a : 19/07/2013 3:04:09 PM
Функция, которая возвращает текущую системную дату и время.
Функция Hour возвращает число от 0 до 23, которое представляет час дня для указанной отметки времени.
Синтаксис
пример
Добавьте кнопку и добавьте следующую функцию.
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
Line 1: 15
Line 2: 23
Line 3: 14
Функция, которая возвращает целое число от 0 до 23, которое представляет часовую часть заданного времени.
Minute
Функция Minute возвращает число от 0 до 59, которое представляет минуту часа для указанной отметки времени.
Синтаксис
пример
Добавьте кнопку и добавьте следующую функцию.
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
Line 1: 13
Line 2: 43
Line 3: 20
Функция, возвращающая целое число от 0 до 59, которое представляет минутную часть данного времени.
Second
Функция возвращает число от 0 до 59, которое представляет вторую часть часа для указанной отметки времени.
Синтаксис
пример
Добавьте кнопку и добавьте следующую функцию.
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод. Line 1: 25
Line 2: 45
Line 3: 0
Функция, возвращающая целое число от 0 до 59, которое представляет собой секундную часть данного времени.
Функция времени возвращает текущее системное время.
Синтаксис
пример
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
Line 1: 3:29:15 PM
Функция, которая возвращает текущее системное время.
Timer
Функция таймера возвращает число секунд и миллисекунд с 12:00.
Синтаксис
пример
Добавьте кнопку и добавьте следующую функцию.
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
Time is : 19/07/2013 3:45:53 PM
Timer is: 56753.4
Функция, которая возвращает число секунд и миллисекунд с 12:00.
TimeSerial
Функция TimeSerial возвращает время для указанных часов, минут и вторых значений.
Синтаксис
Параметр/Описание
- Hour - обязательный параметр, который представляет собой целое число от 0 до 23 или любое числовое выражение.
- Minute - обязательный параметр, который представляет собой целое число от 0 до 59 или любое числовое выражение.
- Second - обязательный параметр, который представляет собой целое число от 0 до 59 или любое числовое выражение.
пример
Добавьте кнопку и добавьте следующую функцию.
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
8:01:02 PM
12:59:59 AM
2:20:18 PM
Функция, которая возвращает время для конкретного ввода часа, минуты и секунды.
TimeValue
Функция TimeValue преобразует заданную входную строку в допустимое время.
Синтаксис
пример
Добавьте кнопку и добавьте следующую функцию.
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
Читайте также: