Note: The other languages of the website are Google-translated. Back to English

Как вставить отметку даты в ячейку, если в Excel установлен флажок?

Обычно штамп даты вводится с помощью горячих клавиш в Excel. Как насчет вставки отметки даты в ячейку с помощью флажка в Excel? При установке флажка метка времени автоматически вставляется в указанную ячейку. Эта статья поможет вам решить эту проблему.

Вставить отметку даты в ячейку, если установлен флажок с кодом VBA


Вставить отметку даты в ячейку, если установлен флажок с кодом VBA

В этом разделе будет представлен сценарий VBA, который поможет вам автоматически вставить отметку даты в ячейку, если в Excel установлен флажок. Пожалуйста, сделайте следующее.

1. После установки флажка нажмите другой + F11 клавиши одновременно, чтобы открыть Microsoft Visual Basic для приложений окно.

2. в Microsoft Visual Basic для приложений окна, нажмите Вставить > Модули. Затем скопируйте и вставьте приведенный ниже код VBA в окно модуля.

Код VBA: вставить отметку даты в ячейку, если установлен флажок

Sub CheckBox_Date_Stamp()
Dim xChk As CheckBox
Set xChk = ActiveSheet.CheckBoxes(Application.Caller)
With xChk.TopLeftCell.Offset(, 1)
    If xChk.Value = xlOff Then
        .Value = ""
    Else
       .Value = Date
    End If
End With
End Sub

3. Нажмите другой + Q ключи, чтобы закрыть Microsoft Visual Basic для приложений окно.

4. Щелкните правой кнопкой мыши флажок и выберите Назначить Micro из контекстного меню. Смотрите скриншот:

5. в Назначить макрос диалоговое окно, выберите CheckBox_Date_Stamp в Имя макроса поле, а затем щелкните OK кнопка. Смотрите скриншот:

При установке флажка штамп даты будет автоматически вставлен в соседнюю ячейку.


Статьи по теме:


Лучшие инструменты для работы в офисе

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма ...
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон...
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы... Предотвращение дублирования ячеек; Сравнить диапазоны...
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор ...
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое ...
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии...
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом ...
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF...
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
вкладка kte 201905

Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
офисный дно
Сортировать комментарии по
Комментарии (22)
Оценок пока нет. Оцените первым!
Этот комментарий был сведен к минимуму модератором на сайте
Спасибо, это было очень полезно, я хотел бы отметить, что я считаю более полезным иметь отметку даты слева от флажка. для этого вы просто меняете смещение на (, -1)
Этот комментарий был сведен к минимуму модератором на сайте
Есть ли способ сделать это с датой и временем? Спасибо за информацию в любом случае!
Этот комментарий был сведен к минимуму модератором на сайте
Sub CheckBox_Date_Stamp() Dim xChk As CheckBox Set xChk = ActiveSheet.CheckBoxes(Application.Caller) With xChk.TopLeftCell.Offset(, 1) Если xChk.Value = xlOff Then .Value = "" Else .Value = Date & " " & Конец времени, если конец с End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуйте,
Пожалуйста, примените ниже код VBA, чтобы добавить дату и время.

Sub CheckBox_Date_Stamp()
Dim xChk как флажок
Установите xChk = ActiveSheet.CheckBoxes(Application.Caller)
С xChk.TopLeftCell.Offset(, 1)
Если xChk.Value = xlOff Тогда
.Значение = ""
Еще
.Значение = Сейчас()
End If
Конец с
End Sub
Этот комментарий был сведен к минимуму модератором на сайте
HI Я попробовал эту формулу, и она работала только для A1 и B1, когда я применил макрос к флажку в A1. Однако, когда я применил макрос к флажку в A2, в B2 ничего не произошло. Кроме того, как изменится формула, если я захочу использовать ее для контрольного списка? Если столбец A был отмечен флажками, а столбец C — датой завершения.
Этот комментарий был сведен к минимуму модератором на сайте
Привет :) вы можете скопировать ячейку с флажком в A1 в остальную часть столбца. или назначить макрос индивидуально для каждого флажка
Этот комментарий был сведен к минимуму модератором на сайте
Добрый день,
Пожалуйста, назначьте макрос отдельно для каждого флажка.
Этот комментарий был сведен к минимуму модератором на сайте
Я точно копирую и вставляю код VBA, но в моей электронной таблице дата отображается в ячейке выше и справа от столбца флажка, а не в ячейке непосредственно справа. ?
Этот комментарий был сведен к минимуму модератором на сайте
У меня тоже такая же проблема. «ПОМОГИТЕ! Мне нужна чья-то ПОМОЩЬ! Не просто чья-то ПОМОЩЬ! Вы знаете, мне нужна чья-то ПОМОЩЬ!
Этот комментарий был сведен к минимуму модератором на сайте
Добрый день,
Код работает хорошо в моем случае. После установки флажка дата появится в ячейке справа. Не могли бы вы предоставить скриншот вашего случая. И какую версию Office вы используете. Спасибо.
Этот комментарий был сведен к минимуму модератором на сайте
У меня была такая же проблема с отметкой даты и времени, появляющейся в ячейке над предполагаемой ячейкой (с использованием Excel 2007). Я пошел дальше и изменил формулу «смещения», чтобы она проходила через одну ячейку И вниз на одну ячейку, и теперь штамп появляется там, где я хочу: с xChk.TopLeftCell.Offset(1, 1)
Я обновляю рабочий лист, созданный кем-то другим и не создававший флажки, но это может быть связано с тем, где внутри ячейки установлен флажок. Я получил разные результаты, когда выровнял флажок с нижней частью ячейки.

Надежда, что помогает!
Этот комментарий был сведен к минимуму модератором на сайте
Это то, что я сделал, чтобы решить эту проблему

Sub CheckBox_Date_Stamp()
Dim xChk как флажок
Установите xChk = ActiveSheet.CheckBoxes(Application.Caller)
С xChk.TopLeftCell.Offset(1, 1)
Если xChk.Value = xlOff Тогда
.Значение = ""
Еще
.Значение = Сейчас()
End If
Конец с
End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Привет! Спасибо за код. Он отлично работает с небольшой настройкой смещения. Тем не менее, я работал над листом, который имеет много-много строк (~ 500+ строк), который содержит множество флажков, и размер файла значительно увеличился. Есть ли способ уменьшить размер? Любой альтернативный способ сделать это?

Благодаря!
Этот комментарий был сведен к минимуму модератором на сайте
Хороший да
Если в строках много флажков и вы хотите действовать со всеми флажками одновременно, приведенный ниже код VBA может вам помочь.
Скопируйте коды в окно кода модуля, вернитесь к рабочему листу и создайте кнопку (например, кнопку (элемент управления формой)), назначьте макрос SetAllChkChange() для кнопки, затем нажмите кнопку, чтобы запустить код.

Теперь все флажки в строках вашего листа активированы. Вы можете выбрать любой из них, чтобы вставить отметку даты в соседнюю ячейку.

Sub SetAllChkChange ()
Дим xChks
Dim xChk как флажок
Dim xI As Long
On Error Resume Next
Стереть xArrChk
Установите xChks = ActiveSheet.CheckBoxes
ReDim Preserve xArrChk (от 1 до xChks.count)
хI = 1
Для каждого xChk в xChks
xChk.Select
Selection.OnAction = "ОбжЧкИзменение"
Далее
End Sub


Sub ObjChkChange ()
Dim xChk как флажок
Установите xChk = ActiveSheet.CheckBoxes(Application.Caller)
С xChk.TopLeftCell.Offset(, 1)
Если xChk.Value = xlOff Тогда
.Значение = ""
Еще
.Значение = Дата
End If
Конец с
End Sub
Этот комментарий был сведен к минимуму модератором на сайте
как сделать, чтобы штамп даты отображался под моим флажком?
Этот комментарий был сведен к минимуму модератором на сайте
Привет! я не могу найти способ, где отметка даты будет сбоку от флажка. я попытался изменить значение смещения с 0, 1 и -1. Можете ли вы помочь мне с этим? спасибо!
Этот комментарий был сведен к минимуму модератором на сайте
Привет, предположим, что ваш флажок установлен в A2 и вы хотите вывести метку даты с правой стороны флажка (в данном случае это B2), измените значение смещения на смещение (1, 1).
Этот комментарий был сведен к минимуму модератором на сайте
Я использовал VBA для отметки времени флажка, но первые две ячейки работают неправильно. Мой первый флажок находится в A2, когда я устанавливаю флажок, время публикуется в B1. Как я могу это исправить?
Этот комментарий был сведен к минимуму модератором на сайте
Привет Стив,
Замените четвертую строку кода на With xChk.TopLeftCell.Offset(1, 1).
Этот комментарий был сведен к минимуму модератором на сайте
Большое тебе спасибо!! Великолепно! Благодарю вас!
Этот комментарий был сведен к минимуму модератором на сайте
Привет, как я могу зациклить код, чтобы включить все флажки в столбце?
Этот комментарий был сведен к минимуму модератором на сайте
Добрый день,
Если в строках много флажков и вы хотите действовать одновременно со всеми флажками, приведенный ниже код VBA может вам помочь.
Скопируйте приведенные ниже коды в окно кода модуля, вернитесь на рабочий лист и создайте кнопку (например, кнопку (элемент управления формой)), назначьте макрос УстановитьВсеChkChange() на кнопку, затем нажмите кнопку, чтобы запустить код.

Теперь все флажки в строках вашего листа активированы. Вы можете выбрать любой из них, чтобы вставить отметку даты в соседнюю ячейку.

Sub SetAllChkChange ()
'Обновлено Extendoffice 20211130
Дим xChks
Dim xChk как флажок
On Error Resume Next
Установите xChks = ActiveSheet.CheckBoxes
Для каждого xChk в xChks
xChk.Select
Selection.OnAction = "ОбжЧкИзменение"
Далее
End Sub

Sub ObjChkChange ()
Dim xChk как флажок
Установите xChk = ActiveSheet.CheckBoxes(Application.Caller)
С xChk.TopLeftCell.Offset(, 1)
Если xChk.Value = xlOff Тогда
.Значение = ""
Еще
.Значение = Дата
End If
Конец с
End Sub
Здесь еще нет комментариев
Оставляйте свои комментарии
Публикация как гость
×
Оценить этот пост:
0   Характеристики
Предлагаемые места

Подписывайтесь на Нас

Copyright © 2009 - www.extendoffice.ком. | Все права защищены. Питаться от ExtendOffice, | Карта сайта
Microsoft и логотип Office являются товарными знаками или зарегистрированными товарными знаками Microsoft Corporation в США и / или других странах.
Защищено Sectigo SSL