Как установить datepicker в excel
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке) .
Выбор даты — это элемент управления, который позволяет пользователям быстро вводить даты в форму Microsoft Office InfoPath, нажав кнопку маленьком всплывающем календаре. Например можно использовать элемент выбора даты для ввода дат рождения люди страхования форме. Можно также использовать элементом выбора даты для отображения стандартных дат, например текущую дату.
В этой статье
Когда следует использовать элемент выбора даты
При необходимости с помощью выбора дат:
Разрешить пользователям ввод дат, выбранном в форме, например даты начала и окончания для определенного проекта.
Функции сегодня и сейчас, чтобы отобразить текущую дату и время в форме.
Отображение дат из внешнего источника данных, например выставления счетов и отгрузки дат из базы данных заказов клиентов.
На приведенном ниже рисунке элементом выбора даты используется в шаблоне формы командировку запроса для сбора отправления Дата рейса.
Вы можете настроить Выбор даты в соответствии со своими потребностями, дважды щелкнув элемент управления в шаблоне формы и измените его свойства. Например можно указать дату по умолчанию или изменить способ отображения даты в форме.
Взаимодействие с пользователем
Выбор даты выглядеть текстовые поля, за исключением того, что отображается маленький значок календаря справа от поля. Чтобы открыть всплывающий календарь, щелкните значок календаря; Когда появится календарь, щелчок даты, они будут доступны из календаря или используйте стрелки вправо и влево кнопок для прокрутки месяцы. Чтобы вставить текущую дату пользователям, они нажмите кнопку сегодня в нижней части календаря.
Совместимость
При разработке шаблона формы в InfoPath, вы можете специального режима совместимости для шаблона формы с поддержкой браузера разработки. Когда шаблона формы с поддержкой браузера, опубликованные на сервере под управлением InfoPath Forms Services, а затем поддержкой веб-браузера, форм, основанных на шаблоне формы можно просмотреть в веб-браузере. При разработке шаблона формы с поддержкой браузера некоторые элементы управления будут недоступны в области задач элементы управления, так как они не отображается в веб-браузере.
Хотя выбора даты доступны при разработке шаблона формы с поддержкой браузера, следует учитывать следующие ограничения:
Выбор даты полностью поддерживаются только в браузерах Windows Internet Explorer. В других веб-браузеры Выбор даты в виде текстового поля, несмотря на то, что дата параметры форматирования, поддерживаются в текстовом поле.
Замещающий текст — текст, отображаемый в элементе управления в шаблоне формы. Пример замещающий текст — «Щелкните здесь и введите». Несмотря на то, что можно оставить заполнитель параметры текста для шаблонов форм с поддержкой браузера, что текст не отображается в веб-браузеры.
Вставка элемента управления "выбор даты"
Процедура для вставки элементом выбора даты немного зависят от ли разработка шаблона формы пустой или индексация внешнего вида шаблона формы базы данных или другого внешнего источника данных.
На рисунке показано, как выглядит элементом выбора даты при выборе в Режим конструктора.
Элементы управления могут быть связанными или свободными. Если элемент управления связан, он подключен к полю или группе в источнике данных, поэтому данные, вводимые в элемент управления, сохраняются в XML-файле самой формы. Когда элемент управления является свободным, он не подключен к полю или группе, а данные, вводимые в него, не сохраняются. Если выбрать элемент управления или навести на него указатель мыши, в его правом верхнем углу , отобразится текст и значок привязки. В тексте указаны группа или поле в источнике данных, к которым привязан элемент управления. Значок указывает на то, правильно ли элемент управления привязан к полю или группе. Если привязка правильная, выводится зеленый значок. Если с привязкой что-то не так, вы увидите синий или красный значок.
Источник данных для шаблона формы состоит из полей и групп, которые отображаются в виде иерархической структуры в области задач Источник данных. Элементы выбора даты всегда связаны с полями. В приведенном ниже примере отправления управляющего элемента выбора даты в шаблоне формы привязан к полю departureDate в области задач Источник данных.
Вставьте элемент выбора даты в шаблоне пустой формы
При создании нового пустого шаблона формы по умолчанию устанавливается флажок Автоматически создавать источник данных в области задач Элементы управления. Это позволяет InfoPath автоматически создавать поля и групп в источнике данных по мере добавления элементов управления в шаблон формы. Эти поля и группы представлены в виде значков папок и файлов в области задач Источник данных.
Поместите курсор в то место шаблона формы, куда вы хотите вставить элемент управления.
Если область задач Элементы управления не отображается, щелкните Другие элементы управления в меню Вставка или нажмите клавиши ALT+I, C.
В разделе Вставить элементы управления щелкните Элемент выбора даты.
Чтобы добавить метку к элементу управления, введите сверху или слева от него текст, за которым следует двоеточие (:).
Чтобы задать способ отображения даты в форме, дважды щелкните Выбор даты, который был добавлен в шаблоне формы.
Перейдите на вкладку данные и нажмите кнопку Формат.
В списке отображения даты следующим образом в диалоговом окне Формат даты выберите требуемый формат отображения.
Примечание: Можно изменить формат отображения даты только в случае тип данных текст, дату, или дата и время.
Вставьте элемент выбора даты на шаблон формы, основанного на существующий источник данных
Если основе внешнего вида шаблона формы на существующий файл язык XML (Extensible Markup), базы данных или веб-службы, InfoPath извлекает поля и группы в области задач Источник данных из соответствующего источника данных. В этом случае можно добавить, перетащив поле выбора даты из области задач Источник данных в шаблоне формы или путем вставки Выбор даты с помощью области задач элементы управления, как описано в приведенной ниже процедуре элементом выбора даты:
Поместите курсор в то место шаблона формы, куда вы хотите вставить элемент управления.
Если область задач Элементы управления не отображается, щелкните Другие элементы управления в меню Вставка или нажмите клавиши ALT+I, C.
В разделе Вставить элементы управления щелкните Элемент выбора даты.
В диалоговом окне Привязка выбора дат выберите поле, в котором нужно сохранить данные выбора даты и нажмите кнопку ОК.
InfoPath в качестве используется имя поля или группы подпись элемента управления. При необходимости измените текст подписи.
Чтобы задать способ отображения даты в форме, дважды щелкните Выбор даты, который был добавлен в шаблоне формы.
На вкладке данные нажмите кнопку Формат.
В списке отображения даты следующим образом в диалоговом окне Формат даты выберите требуемый формат отображения.
Примечание: Можно изменить формат отображения даты, только если тип данных текст, дату, или дата и время.
Совет: В области задач Источник данных также можно использовать для вставки элементов управления. В области задач Источник данных щелкните правой кнопкой мыши поле, которое требуется связать «Выбор даты» и нажмите кнопку Управления "Выбор даты" в контекстном меню.
Отобразить текущую дату в календарике
Чтобы автоматически вставить текущую дату в форме при ее открытии, можно использовать функцию сегодня с элементе выбора даты.
Вставьте элемент выбора даты в шаблоне формы.
Дважды щелкните Выбор даты, вставленной в шаблоне формы.
Откройте вкладку Данные.
В разделе Значение по умолчанию нажмите кнопку Вставить формулу .
В диалоговом окне Вставка формулы нажмите кнопку Вставить функцию.
В списке категорий в диалоговом окне Вставка функции выберите Дата и время.
В списке функции выберите сегодня и нажмите кнопку ОК два раза, чтобы вернуться в диалоговое окно Свойства выбора даты.
Обратите внимание, что в поле значение отображается сегодня().
В разделе Значение по умолчанию снимите флажок обновлять это значение при пересчете результатов формулы.
Примечание: Если снять этот флажок установлен, дата, не обновляется автоматически при каждом открытии формы на основе этого шаблона формы. Идеально подходит в тех случаях, когда пользователи могут видеть дату создания формы. Можно оставить установленным флажком в случаях, когда у вас есть последнее обновление или в прошлый раз открыт на поле, которое необходимо изменять каждый раз при открытии формы дату.
Чтобы проверить изменения, нажмите кнопку Просмотр на стандартной панели инструментов или нажмите клавиши CTRL+SHIFT+B.
Убедитесь, что дату, которая появляется в окне выбора даты выглядит так, как требуемое для. Если это не так, вы можете изменить способ отображения даты или времени, нажав кнопку " Формат " в диалоговом окне Свойства выбора даты.
Отображение текущих даты и времени в календарике
Чтобы автоматически вставить текущую дату и время в форме при ее открытии, можно использовать функцию теперь в элементе выбора даты.
Вставьте элемент выбора даты в шаблоне формы.
Дважды щелкните Выбор даты, вставленной в шаблоне формы.
Откройте вкладку Данные.
В поле тип данных выберите Дата и время (dateTime).
В диалоговом окне Формат даты и времени в списке Формат отображения времени следующим образом нужный вариант и нажмите кнопку ОК.
В диалоговом окне Свойства выбора даты в поле Значение по умолчанию, нажмите кнопку Вставить формулу .
В диалоговом окне Вставка формулы нажмите кнопку Вставить функцию.
В списке категорий в диалоговом окне Вставка функции выберите Дата и время.
В списке функциинажмите кнопку выполнить и нажмите кнопку ОК два раза, чтобы вернуться в диалоговое окно Свойства выбора даты.
Обратите внимание на то, что отображается в поле значениеnow().
В разделе Значение по умолчанию снимите флажок обновлять это значение при пересчете результатов формулы.
Примечание: Если снять этот флажок установлен, дата, не обновляется автоматически при каждом открытии формы на основе этого шаблона формы. Идеально подходит в тех случаях, когда пользователи могут видеть дату создания формы. Можно оставить установленным флажком в случаях, когда у вас есть последнее обновление или в прошлый раз открыт на поле, которое необходимо изменять каждый раз при открытии формы дату.
Чтобы проверить изменения, нажмите кнопку Просмотр на стандартной панели инструментов или нажмите клавиши CTRL+SHIFT+B.
Убедитесь, что дату, которая появляется в окне выбора даты выглядит так, как требуемое для. Если это не так, вы можете изменить способ отображения даты или времени, нажав кнопку " Формат " в диалоговом окне Свойства выбора даты.
Советы по макету
Используйте приведенные ниже советы помогут вам настроить внешний вид, размер и других аспектов элементом выбора даты:
Чтобы одновременно изменить размер нескольких выбора даты, выделите выбора даты, размер которых нужно изменить, в меню Формат выберите пункт Свойства и внесите необходимые изменения на вкладке размер.
Чтобы изменить цвет элементом выбора даты или границу, Выбор даты, в меню Формат выберите, выберите команду границы и заливка и внесите необходимые изменения.
Чтобы настроить текст, встречающийся в элементом выбора даты, используйте поля Шрифт и Размер шрифта на панели инструментов Форматирование. Чтобы одновременно изменить шрифт и размер шрифта для всех выбора даты на шаблон формы, щелкните правой кнопкой мыши Выбор даты с форматированием и нажмите кнопку Применить шрифт для всех элементов управления выбора даты в контекстном меню.
Чтобы увидеть, как будет выглядеть ваш выбор даты с текстом, в нем, в меню Вид нажмите кнопку Образец данных. Это позволит понять, как будет выглядеть формы при заполнении его.
В некоторых случаях текст внутри Выбор даты» и «метка слева от календарике может отображаться для немного отсутствовать выравнивания. Чтобы быстро изменить выравнивание их, дважды щелкните Выбор даты, нажмите кнопку Выровнять на вкладке размер и нажмите кнопку Применить. В случае выбора метки и даты в разных ячейках макетной таблицы, щелкните правой кнопкой мыши ячейку, содержащую подпись, в контекстном меню выберите команду Свойства таблицы и на вкладке Ячейка в группе Вертикальное выравнивание выберите Центр.
Чтобы изменить способ отображения даты, дважды щелкните Выбор даты, перейдите на вкладку данные и нажмите кнопку " Формат ". Выбор формата отображения в диалоговом окне Формат даты.
Надстройка samradDatePicker (русифицированная) для облегчения ввода даты в ячейки листа Excel.
Добавляет в контекстное меня ячеек пункт выбора даты, а при выделении ячеек, содержащих дату, справа от ячейки отображает значок календаря.
Поместите файл надстройки из вложения в папку автозагрузки Excel (C:\Program Files\Microsoft Office\OFFICExx\XLSTART).
В контекстном меню ячеек появляется новый пункт - "Выбрать дату из календаря".
Рядом с ячейками, в которые уже введена дата, будет отображаться маленький календарик, щелчок по которому вызовет большой календарь - для выбора даты.
Второй прикреплённый к статье файл - та же надстройка, только в которой неделя начинается с понедельника (в оригинале надстройки - с воскресенья)
Пароль на проект VBA - 1 (единица)
PS: Этот макрос написал не я (автор - samrad)
Файл с макросом взят на просторах интернета.
Поскольку макрос делал не я, - доработками его я не занимаюсь, никаких гарантий работы дать не могу, по использованию не консультирую.
Комментарии
Супер! Спасибо огромное!
Благодарю, сам бы точно не додумался) Даже у майков на сайте есть подобные вопросы и на их сайте один из вариантов ссылает на http://samradapps.com/datepicker. Красивая обновленная версия.
Отдельное спасибо за исправление падежей в filldocuments. Теперь со склонением имен ошибку не замечал (бывает только со "слова+номер" непонимает как склонять.
Здравствуйте, Дмитрий.
Эта надстройка была сделана очень давно, во времена 32-битных версий Office, и несовместима с 64-битным Excel (который у вас)
Чтобы в 64-битном тоже работало, нужно вносить много изменений в код.
Поищите в интернетах доработанную версию этой надстройки.
Искать можно по фразе samradDatePicker 64 bit
а как изменить макрос на первый день недели "воскресенье"?
заранее благодарю!
Надстройка samradDatePicker (русифицированная) для облегчения ввода даты в ячейки листа Excel.
Добавляет в контекстное меня ячеек пункт выбора даты, а при выделении ячеек, содержащих дату, справа от ячейки отображает значок календаря.
Поместите файл надстройки из вложения в папку автозагрузки Excel (C:\Program Files\Microsoft Office\OFFICExx\XLSTART).
В контекстном меню ячеек появляется новый пункт - "Выбрать дату из календаря".
Рядом с ячейками, в которые уже введена дата, будет отображаться маленький календарик, щелчок по которому вызовет большой календарь - для выбора даты.
Второй прикреплённый к статье файл - та же надстройка, только в которой неделя начинается с понедельника (в оригинале надстройки - с воскресенья)
Пароль на проект VBA - 1 (единица)
PS: Этот макрос написал не я (автор - samrad)
Файл с макросом взят на просторах интернета.
Поскольку макрос делал не я, - доработками его я не занимаюсь, никаких гарантий работы дать не могу, по использованию не консультирую.
Комментарии
А можно сделать этот календарик не надстройкой а файликом экселя и запускать его через событие Private Sub Worksheet_SelectionChange(ByVal Target As Range)?
Спасибо, Антон! Помогло. Заработало. Только появился другой косяк. Раньше (в Office 2003 и Winx32) при выделении ячейки с форматом "Дата" справа показывалась иконка. Теперь, если ячейка пустая (формат "Дата"), иконка не появляется. Она появляется только в ячейке с уже вставленной датой и в следующей ячейке ниже. Как сделать, чтоб иконка появлялась во всех ячейках с форматом "Дата"?
Для работы надстройки календаря на Office 2010 x64 необходимо в код всех модулей после Declare вставить PtrSafe. Затем прогнать код на ошибки - нажать F5, сохранить все изменения в надстройке, и произвести цикл закрытия/открытия рабочей книги Excel.
А возможно ли в данной надстройке поменять цвет шрифта/заливки (например на красный) дней определенных дат, либо регулярных дней недели? Речь конечно же идет о праздниках и выходных. И какие изменения необходимо внести в код в связи с этим?
Предполагаю что речь идет о формате отображения дней, месяцев или лет, от даты на календаре. Меняя формат например на "дней", видно сколько осталось дней от даты на календаре до даты под "мышкой", ну и в других случаях соответственно. На формат ячейки это никак не влияет.
Насколько мне известно, вариант отображения даты зависит от формата ячейки (на ячейке правой кнопкой, "Формат ячеек" вкладка "Число" "Дата" либо из "(все форматы)" выбрать нужный, при желании отредактировав). Календарь ни при чём.
Отличный календарь, жаль, что не выходит у меня настроить его на х64.
Куда вот это вставить?
If Win64 Then
Declare Function MyMathFunc Lib "User32" (ByVal N As LongLong) As LongLong
Else
Declare Function MyMathFunc Lib "User32" (ByVal N As Long) As Long
If
что такое дисплей формат (внизу файла). Связано это как то с изменением формата даты и если да, то как это работает (дата вставляется в одном и том же формате)
Не разобрался, что и где добавить в 64х версии 2010 офиса. Может, кто понял и поделится? Буду признателен
Ага, разобрался, работает и в десятом офисе.
Windows 7 Enterprise SP1 EN x84, Office 2010 Pro x32, - календарь работает нормально и на защищенных листах.(без иконки, я её отключил)
Спасибо, в 2003 Excele у меня этот календарь (по ссылке с другого сайта) на заблокированных листах работает частично. С кнопки Date Picker на панели открывается календарь, но рядом с ячейкой иконка не появляется. В 2010 вообще не заработал, хотя версия с этого сайта работала, но как-то криво.
А с чего вы взяли, что иконка берется не с диска?
Макрос DisplayIcon рисует прямоугольник возле ячейки, и выполняет заливку этой фигуры картинкой из файла
А файл этот предварительно создаётся макросом CreateIconFile.
Сам графический файл побайтово формируется в процедуре WriteIcon, и записывается на жесткий диск.
Очень интересно, как реализована появление иконки в ячейке без подгрузки из диска? Сколько не копался в коде понять не смог.
Кстати! А можно сделать так, чтоб календарик также, как и в Excel, млжно было бы вызвать в Word&
Очень хороший календарик! Правда, одно "но". Лично мне привычнее, чтоб дни недели распологались бы вертикально.
При запуске Excel 2003 выкидывал ошибку и закрывался.
Помогло: запустил скачанный файл, открыл Visual Basic, открыл проект - forms - FrmCal
закрыл Visual Basic. Ничего не менял. Перезапустил Excel.
Всё заработало. Странно, но помогло )))
Очень удобно, спасибо!
Скинул сюда "c:\Users\Администратор\AppData\Roaming\Microsoft\AddIns"
Exсel 2010-й, папки ". OFFICExx\XLSTART" у меня нет.
а можно внизу где "вперед. дней" рядом в углу установить значок "сегодня", чтобы при нажатии на него сразу показывался текущий месяц?
Еще раз привет !
До сих пор у меня не получилось установить эту функцию. При запуске Эксель выдаёт информацию об ошибке (в переводе):
Недопустимый вызов процедуры или параметр (Ошибка 5)
Некоторая часть запроса не может быть закончена. Эта ошибка имеет следующие причины и решения:
Параметр вероятно превышает диапазон разрешенных значений. Например, функция Sin может только принять значения в пределах некоторого диапазона. Положительные параметры меньше чем 2,147,483,648 приняты, в то время как 2,147,483,648 генерирует эту ошибку.
Проверьте(Отметьте) диапазоны, разрешенные для параметров.
Эта ошибка может также произойти, если попытка сделана, чтобы назвать(вызвать) процедуру, которая не правильна(допустима) на текущей платформе. Например, некоторые процедуры могут только быть правильны(допустимы) для Windows Microsoft, или для Macintosh, и так далее.
Проверьте(Отметьте) определенную платформой информацию о процедуре.
Для дополнительной информации, выберите рассматриваемый элемент(пункт) и нажмите F1 (в Windows) или СПРАВКЕ (на Macintosh).
Что это значит? Не могу понять! Заранее спасибо
Добавил в заголовки к этой и другим статьям, описывающим макросы с применением WinAPI, причины и способы устранения проблем несовместимости макросов при работе в 64-битных Windows и Office 2010
Пытался запустить на 64-битной платформе, не работает. Excel говорит, что ошибка компиляции в скрытом модуле modMouse. Что я делаю не так?
я предполагаю, что формат ячейки должен быть "Дата", тогда появится справа значок календаря или вызвать контекстное меню правой кнопкой мыши и выбрать пункт меню "Выбрать из календаря"
Привет, учитель!
Скачал я надстройку, сохранил в положенном месте, а в Экселе ничего не изменилось и не добавилось. Может я чего то не понимаю?
вот русский вариант с понедельником
Спасибо за исправленную версию, прикрепил доработанный файл надстройки к статье.
В коде формы frmCal в строчке Переменная077 = Weekday(Переменная0175, vbSunday) поменяй на (Переменная0175, vbMonday), a затем поменяй на самой форме дни недели соответственно.
А как сделать, что бы неделя начиналась с пн?
ДА прибудет с тобой сила мастер ВбА
Надо найти функцию CreateIconFile, и указать в ней путь к вашему файлу с иконкой:
A date picker is a control that lets users quickly enter dates in a Microsoft Office InfoPath form by clicking a small pop-up calendar. For example, you can use a date picker to collect birth dates from people on an insurance form. You can also use a date picker to display preset dates, such as the current date.
In this article
When to use a date picker
Use a date picker when you want to:
Enable users to enter dates of their choice on a form, such as start and end dates for a particular project.
Use the today and now functions to show today's date and time on a form.
Display dates from an external data source, such as billing and shipping dates from a database of customer orders.
In the following illustration, a date picker is used on a travel request form template to collect the departure date for a flight.
You can customize the date picker to suit your needs by double-clicking the control on the form template and then changing its properties. For example, you can specify a default date or change the way that the date is displayed on the form.
The user experience
Date pickers look like text boxes, except that a small calendar icon appears on the right side of the box. To open the pop-up calendar, users click the calendar icon. When the calendar appears, users can click the date that they want on the calendar or use the right and left arrow buttons to scroll through the months. If users want to insert the current date, they can click the Today button at the bottom of the calendar.
Compatibility considerations
When you design a form template in InfoPath, you can choose a specific compatibility mode to design a browser-compatible form template. When a browser-compatible form template is published to a server running InfoPath Forms Services, and then browser-enabled, forms based on the form template can be viewed in a Web browser. When you design a browser-compatible form template, some controls are unavailable in the Controls task pane because they cannot be displayed in a Web browser.
Although date pickers are available when you design a browser-compatible form template, be aware of the following limitations:
Date pickers are fully supported only in Windows Internet Explorer browsers. In other Web browsers, the date picker appears as a text box, although date formatting options are supported in the text box.
Placeholder text is text that appears inside a control on a form template. An example of placeholder text is "Click here and type." Although you can leave placeholder text settings for browser-compatible form templates, that text does not appear in Web browsers.
Insert a date picker
The procedure for inserting a date picker differs slightly depending on whether you are designing a new, blank form template or basing the design of your form template on a database or other external data source.
The following illustration shows how a date picker looks when it is selected in design mode.
Controls can be bound or unbound. When a control is bound, it is connected to a field or group in the data source so that data entered into the control is saved in the underlying form (.xml) file. When a control is unbound, it is not connected to a field or group, and data entered into the control is not saved. When you select or move your pointer over a control, text and a binding icon appear in the upper-right corner of the control. The text indicates the group or field to which the control is bound in the data source. The icon indicates whether the control is correctly bound to that group or field. When the binding is correct, a green icon appears. If there's something wrong with the binding, you'll see a blue or red icon instead.
The data source for the form template consists of fields and groups that appear in a hierarchical view in the Data Source task pane. Date picker controls are always bound to fields. In the following example, the Departure date date picker on the form template is bound to the departureDate field in the Data Source task pane.
Insert a date picker on a new, blank form template
When you design a new, blank form template, the Automatically create data source check box in the Controls task pane is selected by default. This enables InfoPath to automatically create fields and groups in the data source as you add controls to the form template. These fields and groups are represented by folder and file icons in the Data Source task pane.
On the form template, place the cursor where you want to insert the control.
If the Controls task pane is not visible, click More Controls on the Insert menu, or press ALT+I, C.
Under Insert controls, click Date Picker.
To add a label to the control, type text above or to the left of the control, followed by a colon (:).
To specify the way that the date is displayed on the form, double-click the date picker that was inserted on the form template.
Click the Data tab, and then click Format.
In the Display the date like this list, in the Date format dialog box, click the display format that you want.
Note: You can change the display format of the date only if the data type is text, date, or date and time.
Insert a date picker on a form template that is based on an existing data source
On the form template, place the cursor where you want to insert the control.
If the Controls task pane is not visible, click More Controls on the Insert menu, or press ALT+I, C.
Under Insert controls, click Date Picker.
In the Date Picker Binding dialog box, select the field in which you want to store the date picker data, and then click OK.
InfoPath uses the name of the field or group as the control's label. If necessary, change the label text.
To specify the way that the date is displayed on the form, double-click the date picker that was inserted on the form template.
On the Data tab, click Format.
In the Display the date like this list box, in the Date format dialog box, click the display format that you want.
Note: You can change the display format of the date only if the data type is text, date, or date and time.
Tip: You can also use the Data Source task pane to insert controls. In the Data Source task pane, right-click the field that you want to bind the date picker to, and then click Date Picker on the shortcut menu.
Display the current date in a date picker
To automatically insert the current date on a form when users open it, you can use the today function with a date picker control.
Insert a date picker on the form template.
Double-click the date picker that you inserted on the form template.
Click the Data tab.
Under Default Value, click Insert Formula .
In the Insert Formula dialog box, click Insert Function.
In the Categories list in the Insert Function dialog box, click Date and Time.
In the Functions list, click today, and then click OK twice to return to the Date Picker Properties dialog box.
Notice that today() appears in the Value box.
Under Default Value, clear the Update this value when the result of the formula is recalculated check box.
Note: If you clear this check box, the date isn't updated automatically each time a user opens a form based on this form template. This is ideal in situations where you want users to see the date when the form was created. You can leave the check box selected in situations where you have a Last updated on or Last opened on field, where you want the date to change every time the form is opened.
Click OK to return to the form template.
To test your changes, click Preview on the Standard toolbar, or press CTRL+SHIFT+B.
Verify that the date that appears in the date picker looks the way that you want it to. If it doesn't, you can change how the date or time is displayed by clicking the Format button in the Date Picker Properties dialog box.
Display the current date and time in a date picker
To automatically insert the current date and time on a form when users open it, you can use the now function with a date picker control.
Insert a date picker on the form template.
Double-click the date picker that you inserted on the form template.
Click the Data tab.
In the Data type box, click Date and Time (dateTime).
Click Format.
In the Date and Time Format dialog box, in the Display the time like this list, click the option that you want, and then click OK.
In the Date Picker Properties dialog box, under Default Value, click Insert Formula .
In the Insert Formula dialog box, click Insert Function.
In the Categories list in the Insert Function dialog box, click Date and Time.
In the Functions list, click now, and then click OK twice to return to the Date Picker Properties dialog box.
Notice that now() appears in the Value box.
Under Default Value, clear the Update this value when the result of the formula is recalculated check box.
Note: If you clear this check box, the date isn't updated automatically each time a user opens a form based on this form template. This is ideal in situations where you want users to see the date when the form was created. You can leave the check box selected in situations where you have a Last updated on or Last opened on field, where you want the date to change every time the form is opened.
Click OK to return to the form template.
To test your changes, click Preview on the Standard toolbar, or press CTRL+SHIFT+B.
Verify that the date that appears in the date picker looks the way that you want it to. If it doesn't, you can change how the date or time is displayed by clicking the Format button in the Date Picker Properties dialog box.
Layout tips
Use the following tips to help you refine the appearance, size, and other aspects of a date picker:
To change the size of several date pickers at once, select the date pickers whose size you want to change, on the Format menu, click Properties, and then on the Size tab, make the necessary adjustments.
To change the border or color of a date picker, select the date picker, on the Format menu, click Borders and Shading, and then make the necessary adjustments.
To customize the text that appears in a date picker, use the Font and Font Size boxes on the Formatting toolbar. To change the font and font size for all of the date pickers on your form template at once, right-click the date picker that contains the formatting that you want, and then click Apply Font to All Date Picker Controls on the shortcut menu.
To see what your date picker will look like with actual text in it, click Sample Data on the View menu. This helps you get a sense of what the form will look like when users fill it out.
On occasion, the text inside a date picker and the label to the left of the date picker may appear to be slightly out of alignment. To quickly realign them, double-click the date picker, click Align on the Size tab, and then click Apply. If the label and date picker are in different cells in a layout table, right-click the cell that contains the label, click Table Properties on the shortcut menu, and then click Center under Vertical alignment on the Cell tab.
To change the way that the date is displayed, double-click the date picker, click the Data tab, and then click the Format button. Choose a display format in the Date Format dialog box.
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 Как убрать эту лишнюю дату?
Читайте также: