Автоматическая вставка текущей даты в ячейку при вводе данных
Предположим, у нас имеется таблица заказов, куда пользователь вводит номер заказа, имя клиента, сумму и т.д. Необходимо сделать так, чтобы при внесении номера заказа в столбец А — в столбце B напротив введенного заказа автоматически появлялись дата и время его занесения:
Чтобы реализовать такой ввод даты, нам потребуется простой макрос, который надо добавить в модуль рабочего листа. Для этого щелкните правой кнопкой мыши по ярлычку листа с таблицей и выберите в контекстном меню команду Исходный текст (View code).
В открывшееся окно редактора Visual Basic скопируйте этот текст этого макроса:
Private Sub Worksheet_Change(ByVal Target As Range) For Each cell In Target 'проходим по всем измененным ячейкам If Not Intersect(cell, Range("A2:A100")) Is Nothing Then 'если изменененная ячейка попадает в диапазон A2:A100 With cell.Offset(0, 1) 'вводим в соседнюю справа ячейку дату .Value = Now .EntireColumn.AutoFit 'выполняем автоподбор ширины для столбца B, чтобы дата умещалась в ячейке End With End If Next cell End Sub
При необходимости измените «чувствительный» диапазон «А2:А100» на свой собственный. Если необходимо вставлять дату не в соседний столбец, а правее — подставьте в оператор Offset(0,1) вместо 1 число побольше.
Закройте редактор Visual Basic и попробуйте ввести что-нибудь в диапазон А2:А100. В соседней ячейке тут же появится текущая дата-время!
Ссылки по теме
- Как сделать выпадающий календарь для быстрого ввода любой даты мышью в любую ячейку.
- Как Excel работает с датами
- Что такое макрос, как он работает, куда копировать текст макроса, как запустить макрос?
Отображение даты и времени изменения ячейки |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Получить и вставить время создания и время последнего изменения в ячейки
В этой статье будут рассказываться о способах получения времени создания и времени последнего изменения текущей информации книги, а также вставки времени создания и времени последнего изменения текущей информации книги в ячейки Excel.
Получите время создания и время последнего изменения в Excel с помощью команды Info
Получите время создания и время последнего изменения в Excel с помощью функции дополнительных свойств
Вставьте созданное время и время последнего изменения в ячейки Excel с кодом VBA
Вставьте время создания и время последнего изменения в ячейки/верхний/нижний колонтитул с помощью Kutools for Excel
Получите время создания и время последнего изменения в Excel с помощью команды Info
Мы можем узнать точное время создания и время последнего изменения текущей книги в представлении за кулисами Microsoft Excel 2010/2013.
Нажмите Файл > Инфо, а в правой части представления за кулисами отображается Связанные даты Информация. Под Связанные даты title, в нем указано время последнего изменения, время создания и время последней печати. См. Следующий снимок экрана:
Примечание: Этот способ доступен только в Microsoft Excel 2010/2013. Это недопустимо в Excel 2007.
Получите время создания и время последнего изменения в Excel с помощью функции дополнительных свойств
Фактически, мы можем получить как время создания, так и время последнего изменения текущей книги в диалоговом окне «Свойства документа».
Шаг 1: Открой Дополнительные свойства диалоговое окно:
В Excel 2007 щелкните значок Офисы кнопка> Подготовить > ПредложенияИ Свойства документа панель будет отображаться под панелью инструментов, щелкните Свойства документа > Дополнительные свойства, смотрите скриншоты:
В Excel 2010/2013 щелкните значок Файл > Инфо > Предложения > Дополнительные свойства.
Шаг 2: В Дополнительные свойства В диалоговом окне вы увидите время создания и время последнего изменения на вкладке Статистика. См. Следующий снимок экрана:
Вставьте созданное время и время последнего изменения в ячейки Excel с кодом VBA
Следующие макросы VBA помогут вам напрямую вставить в ячейки время создания и время последнего изменения текущей информации книги.
Вставьте время создания и время последнего изменения в Excel
Шаг 1: Удерживайте ALT + F11 ключи, и он открывает окно Microsoft Visual Basic для приложений.
Шаг 2: Нажмите Вставить >> Модулии вставьте следующий макрос в окно модуля.
Код VBA: вставьте время создания и время последнего изменения в Excel
Sub Workbook_Open()
Range("A1").Value = Format(ThisWorkbook.BuiltinDocumentProperties("Creation Date"), "short date")
Range("A2").Value = Format(ThisWorkbook.BuiltinDocumentProperties("Last Save Time"), "short date")
End Sub
Шаг 3:Нажмите F5 ключ для запуска этого макроса. И тогда дата создания и дата последнего изменения будут вставлены в ячейку A1 и ячейку A2 отдельно.
Внимание: вы можете изменить ячейку назначения в VB в соответствии с вашими потребностями.
Вставить время последнего изменения книги в Excel
Шаг 1: Удерживайте ALT + F11 ключи, и он открывает окно Microsoft Visual Basic для приложений.
Шаг 2: Нажмите Вставить >> Модулии вставьте следующий макрос в окно модуля.
Public Function ModDate()
ModDate = Format(FileDateTime(ThisWorkbook.FullName), "m/d/yy h:n ampm")
End Function
Шаг 3: Затем сохраните и закройте этот код и вернитесь на рабочий лист, в пустой ячейке введите формулу = ModDate (), и нажмите Enter ключ. Затем он вставляет в ячейку время последнего изменения.
Вставить созданное время книги в Excel
Шаг 1: Удерживайте ALT + F11 ключи, и он открывает окно Microsoft Visual Basic для приложений.
Шаг 2: Нажмите Вставить >> Модулии вставьте следующий макрос в окно модуля.
Function CreateDate() As Date
CreateDate = ActiveWorkbook.BuiltinDocumentProperties("Creation Date")
End Function
Шаг 3: Сохраните и закройте этот код, вернитесь на лист, в пустой ячейке введите формулу = CreateDate (), и нажмите Enter key. и созданная дата будет вставлена в ячейку, как показано на следующих снимках экрана:
Примечание: Если ваша ячейка не является форматом даты, она может отображать странное число. Просто отформатируйте эту ячейку как Время формат, он будет отображаться как обычная дата.
Вставьте время создания и время последнего изменения в ячейки/верхний/нижний колонтитул с помощью Kutools for Excel
Могу я представить вам удобный инструмент —Kutools for Excel какие из более чем 300 полезных функций могут повысить эффективность вашей работы? С этими Вставить информацию о книге Вы можете быстро вставить путь к книге, имя книги / рабочего листа, имя пользователя или время создания и время последнего изменения в ячейки, верхний или нижний колонтитул.
После бесплатная установка Kutools for Excel, пожалуйста, сделайте следующее:
1. Нажмите Кутулс Плюс > Workbook > Вставить информацию о книге. Смотрите скриншот:
2. Затем в Вставить информацию о книге диалоговом окне, проверьте информацию, которую вы хотите вставить из раздела информации, затем перейдите, чтобы указать место, в которое вы хотите вставить, вы можете выбрать ячейки, нижний колонтитул (левый нижний колонтитул, центральный нижний колонтитул, правый нижний колонтитул) или заголовок (левый верхний колонтитул, центральный верхний колонтитул, правый заголовок). Смотрите скриншот:
3. Нажмите Ok, и проверяемая вами информация была вставлена в указанное вами место.
Наконечник. Если вы хотите получить бесплатную пробную версию функции «Вставить информацию о книге», пожалуйста, перейдите к бесплатной загрузке Kutools for Excel сначала, а затем перейдите к применению операции в соответствии с вышеуказанными шагами.
Вставить информацию о книге
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
ArtistJoker 0 / 0 / 0 Регистрация: 18.11.2015 Сообщений: 2 |
||||||
1 |
||||||
18.11.2015, 17:43. Показов 9191. Ответов 11 Метки нет (Все метки)
Привет, форумчане! Очень прошу помочь. На работе заполняю отчёт, в котором вручную приходится вставлять дату изменений строки(не просто ячейки) с информацией по клиенту. Искал в сети помощь, нашёл только вот такой код (внесение даты изменений соседней ячейки):
———————————————————————————————————————- Заранее благодарен! Вложения
0 |
Vlad999 3827 / 2254 / 751 Регистрация: 02.11.2012 Сообщений: 5,930 |
||||
18.11.2015, 17:58 |
2 |
|||
Сообщение было отмечено ArtistJoker как решение Решение
1 |
pashulka 4131 / 2235 / 940 Регистрация: 01.12.2010 Сообщений: 4,624 |
||||||||
18.11.2015, 18:59 |
3 |
|||||||
Альтернативный вариант (на основании выложенного примера)
или
1 |
0 / 0 / 0 Регистрация: 18.11.2015 Сообщений: 2 |
|
23.11.2015, 17:10 [ТС] |
4 |
Спасибо, огромное! Всё работает как надо!
0 |
0 / 0 / 0 Регистрация: 12.02.2020 Сообщений: 23 |
|
07.07.2020, 20:58 |
5 |
Подскажите как подкорректировать для моего случая:
0 |
4131 / 2235 / 940 Регистрация: 01.12.2010 Сообщений: 4,624 |
|
07.07.2020, 21:00 |
6 |
gpetrv, Скажите чей вариант Вы выбрали ?
0 |
0 / 0 / 0 Регистрация: 12.02.2020 Сообщений: 23 |
|
07.07.2020, 22:38 |
7 |
pashulka, Мне все равно чей вариант, лишь бы рабочий……и универсальный (изменять диапазоны ячеек)
0 |
pashulka 4131 / 2235 / 940 Регистрация: 01.12.2010 Сообщений: 4,624 |
||||
07.07.2020, 22:40 |
8 |
|||
Next — следующий лист.
1 |
0 / 0 / 0 Регистрация: 12.02.2020 Сообщений: 23 |
|
07.07.2020, 22:51 |
9 |
pashulka, А на первом листе?
0 |
4131 / 2235 / 940 Регистрация: 01.12.2010 Сообщений: 4,624 |
|
07.07.2020, 23:18 |
10 |
gpetrv, В модуле первого листа — событие Worksheet_Change. Тогда на следующем — будет выводиться дата+время изменения данных ячеек диапазона A2:V20 Если месторасположение второго рабочего листа, в дальнейшем, может меняться, то можно использовать имя этого листа или кодовое(программное) имя. Т.е. вместо Me.Next написать Worksheets(«Лист2») или Лист2 . Разумеется, имена нужно указать свои.
1 |
0 / 0 / 0 Регистрация: 12.02.2020 Сообщений: 23 |
|
29.07.2020, 21:21 |
11 |
pashulka, не могу скомпоновать со своим кодом. Не силен…. Помогите..
0 |
pashulka 4131 / 2235 / 940 Регистрация: 01.12.2010 Сообщений: 4,624 |
||||
29.07.2020, 22:24 |
12 |
|||
Это тоже мой код, но там всего один рабочий лист. Если в реальности появится второй, то между первой и второй
строкой просто добавьте
1 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
29.07.2020, 22:24 |
12 |
Хитрости »
1 Май 2011 53758 просмотров
Запись изменений на листе в примечания
Иногда необходимо вести лог изменений в ячейках. Просто чтобы видеть как изменялась информация в ячейке. Например, это может пригодиться при ведении истории заказа, когда статус заказа записывается в одной ячейке. Сначала «В обработке», далее «Вывоз со склада», потом «Доставка» и т.п.
Приведенный ниже код создает примечание в ячейке, если её значение было изменено. В примечание заноситься информация о том, что было занесено в ячейку и когда это было занесено(т.е. дата и время изменения). Если примечание в ячейке уже есть, то в имеющееся примечание допишется информация об изменениях.
Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) 'отслеживаем изменения только в диапазоне "E14:E50" - т.е. только статус '(изменить адрес, если надо отслеживать другие ячейки) If Intersect(Target, Me.Range("E14:E50")) Is Nothing Then Exit Sub Dim oComment As Comment On Error Resume Next Set oComment = Target.Comment If oComment Is Nothing Then Target.AddComment Target.Text & " " & Format(Now, "dd.mm.yy HH:MM") Else oComment.Text oComment.Text & Chr(10) & Target.Text & " " & Format(Now, "dd.mm.yy HH:MM") End If End Sub
Код необходимо поместить в модуль листа(щелкнуть правой кнопкой мыши по ярлычку листа —Исходный текст), изменения на котором необходимо отследить. Подробнее о модулях.
Следует учитывать, что код сработает только если данные были изменены вручную и для одной ячейки, а не для нескольких. Если скопировать в вставить несколько ячеек, примечание будет создано только для одной, а текст примечания может отличаться от ожидаемого. Если изменения производятся посредством вычисления формул — код не сработает вообще.
Изменения отслеживаются исключительно для ячеек A17:I30. Чтобы изменить ячейки, в которых необходимо отслеживать изменения, необходимо в строке:
If Intersect(Target, Me.Range(«E14:E50»)) Is Nothing Then Exit Sub
заменить адрес «E14:E50» на адрес нужных ячеек.
Если необходимо, чтобы в примечание заносилось предыдущее значение ячейки и вдобавок необходимо ограничить диапазон отслеживания изменений конкретными ячейками, то можно применить следующий код:
Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Dim v, vv, sf, sa As String 'отслеживаем изменения только в диапазоне "A17:I30"(изменить адрес, если надо отслеживать другие ячейки) If Intersect(Target, Me.Range("A17:I30")) Is Nothing Then Exit Sub 'если изменено более одной ячейки - завершаем выполнение во избежание ошибок If Target.Count > 1 Then Exit Sub 'получаем новое значение v = Target.Value sf = Target.Formula 'запоминаем адрес текущей выделенной ячейки 'т.к. после Undo она изменится и надо будет вернуть sa = Selection.Address 'получаем старое значение With Application .EnableEvents = 0 .Undo vv = Target.Value 'старое значение 'возвращаем последнее записанное значение Target.Formula = sf Me.Range(sa).Select .EnableEvents = 1 End With 'сравниваем новое значение с прежним If CStr(vv) <> CStr(v) Then 'если значения различаются - создаем или дописываем примечание On Error Resume Next Dim oComment As Comment Set oComment = Target.Comment If oComment Is Nothing Then 'примечания еще нет - создаем и записываем информацию об изменениях Set oComment = Target.AddComment(CreateObject("wscript.network").UserName & ":" & Chr(10) & "было: " & vv & "; стало: " & v & "; Дата: " & Format(Now, "dd.mm.yy HH:MM")) Else 'уже есть примечание - дописываем информацию об изменениях oComment.Text oComment.Text & Chr(10) & CreateObject("wscript.network").UserName & ":" & Chr(10) & "было: " & vv & "; стало: " & v & "; Дата: " & Format(Now, "dd.mm.yy HH:MM") End If oComment.Shape.TextFrame.AutoSize = True End If End Sub
Код так же как и предыдущий размещается в модуле листа(правая кнопка мыши по ярлычку листа —Исходный текст), изменения в котором необходимо отслеживать.
Так же в данном коде помимо старого значения в примечание так же записываемся имя пользователя, изменившего значение, новое значение, дата/время изменения. Изменения отслеживаются исключительно для ячеек A17:I30. Чтобы изменить ячейки, в которых необходимо отслеживать изменения, необходимо в строке:
If Intersect(Target, Me.Range(«A17:I30»)) Is Nothing Then Exit Sub
заменить адрес «A17:I30» на адрес нужных ячеек.
Хочу обратить внимание, что при изменении нескольких ячеек сразу код не будет выполняться, т.к. ячеек может быть много и их значения могут просто не уместиться в примечания. Если нужны отслеживания множества ячеек сразу, то имеет смысл ознакомиться со статьей: Ведение журнала сделанных в книге изменений
Скачать пример
История изменений ячеек в примечаниях (72,5 KiB, 3 734 скачиваний)
Так же см.:
Ведение журнала сделанных в книге изменений
Выделение сделанных изменений
Статья помогла? Поделись ссылкой с друзьями!
Видеоуроки
Поиск по меткам
Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика