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 для додатків вікна, натисніть Insert > Модулі. Потім скопіюйте та вставте наведений нижче код 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 для Excel вирішує більшість ваших проблем і збільшує продуктивність на 80%

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

Вкладка Office забезпечує інтерфейс з вкладками для Office і значно спрощує вашу роботу

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
дно офісної таблиці
Коментарі (22)
Поки немає оцінок. Оцініть першим!
Цей коментар був мінімізований модератором на сайті
Дякую, це було дуже корисно. Я хотів би зазначити, що мені корисніше мати штамп дати зліва від прапорця. для цього потрібно просто змінити зміщення на (, -1)
Цей коментар був мінімізований модератором на сайті
Чи є спосіб зробити це за допомогою дати І часу? Дякую за інформацію в будь-якому випадку!
Цей коментар був мінімізований модератором на сайті
Sub CheckBox_Date_Stamp() Dim xChk Як CheckBox Встановіть xChk = ActiveSheet.CheckBoxes(Application.Caller) за допомогою xChk.TopLeftCell.Offset(, 1) Якщо xChk.Value = xlOff Тоді .Value = " &" Else " Закінчення часу, якщо End With End Sub
Цей коментар був мінімізований модератором на сайті
привіт,
Будь ласка, застосуйте код VBA нижче, щоб додати дату та час.

Підсумковий CheckBox_Date_Stamp()
Dim xChk Як CheckBox
Встановіть xChk = ActiveSheet.CheckBoxes(Application.Caller)
З xChk.TopLeftCell.Offset(, 1)
Якщо xChk.Value = xlOff Тоді
.Value = ""
Ще
.Value = Зараз()
End If
Кінець з
End Sub
Цей коментар був мінімізований модератором на сайті
Привіт. Я спробував цю формулу, і вона працювала лише для A1 і B1, коли я застосував макрос до прапорця в A1. Однак, коли я застосував макрос до прапорця в A2, нічого не сталося в B2. Також як би змінилася формула, якби я хотів використовувати її для контрольного списку? Якщо стовпець A був прапорцями, а стовпець C – датою заповнення.
Цей коментар був мінімізований модератором на сайті
Привіт :) Ви можете скопіювати клітинку з прапорцем у A1 до решти стовпця. або призначте макрос окремо для кожного прапорця
Цей коментар був мінімізований модератором на сайті
Хороший день,
Будь ласка, призначте макрос окремо для кожного прапорця.
Цей коментар був мінімізований модератором на сайті
Я точно скопіював та вставив код VBA, але в моїй електронній таблиці дата з’являється в клітинці вище й праворуч від стовпця прапорця, а не в клітинці праворуч. ?
Цей коментар був мінімізований модератором на сайті
У мене теж така ж проблема. «ДОПОМОГІТЬ! Мені потрібна хтось ДОПОМОГИ!
Цей коментар був мінімізований модератором на сайті
Добрий день,
У моєму випадку код працює добре. Після встановлення прапорця дата з’явиться в комірці праворуч. Не могли б ви надати скріншот вашого випадку. І яку версію Office ви використовуєте. Дякую.
Цей коментар був мінімізований модератором на сайті
У мене була така ж проблема з міткою дати та часу, що з’являлася в клітинці над передбачуваною коміркою (за допомогою Excel 2007). Я продовжив і змінив формулу "зміщення" так, щоб вона проходила через одну клітинку І вниз на одну клітинку, і тепер штамп з'являється там, де я хочу: За допомогою xChk.TopLeftCell.Offset(1, 1)
Я оновлюю робочий аркуш, який створив хтось інший, але не створював прапорці, але це може бути пов’язано з тим, де всередині комірки розміщено прапорець. Я отримав різні результати, коли поставив прапорець у нижню частину клітинки.

Надія, що допомагає!
Цей коментар був мінімізований модератором на сайті
Ось що я зробив, щоб вирішити цю проблему

Підсумковий CheckBox_Date_Stamp()
Dim xChk Як CheckBox
Встановіть xChk = ActiveSheet.CheckBoxes(Application.Caller)
З xChk.TopLeftCell.Offset(1, 1)
Якщо xChk.Value = xlOff Тоді
.Value = ""
Ще
.Value = Зараз()
End If
Кінець з
End Sub
Цей коментар був мінімізований модератором на сайті
Привіт! Дякую за код. Він ідеально працює з невеликим налаштуванням зміщення. Однак я працював над аркушем, який містить багато багато рядків (~500+ рядків), який містить завантаження прапорців, і розмір файлу значно зріс. Чи є спосіб зменшити розмір? Будь-який альтернативний спосіб зробити це?

Спасибо!
Цей коментар був мінімізований модератором на сайті
Хороший та
Якщо в рядках багато прапорців, і ви хочете діяти з усіма прапорцями одночасно, наведений нижче код VBA може допомогти вам.
Будь ласка, скопіюйте коди у вікно коду модуля, поверніться до робочого аркуша та створіть кнопку (наприклад, кнопку (контроль форми)), призначте кнопці макрос SetAllChkChange(), а потім натисніть кнопку, щоб запустити код.

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

Sub SetAllChkChange()
Dim xChks
Dim xChk Як CheckBox
Розмір xI як довго
On Error Resume Next
Стерти xArrChk
Встановіть xChks = ActiveSheet.CheckBoxes
ReDim Preserve xArrChk(1 To xChks.count)
xI = 1
Для кожного xChk В xChks
xChk.Select
Selection.OnAction = "ObjChkChange"
Далі
End Sub


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

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

Sub SetAllChkChange()
'Оновлено Extendoffice 20211130
Dim xChks
Dim xChk Як CheckBox
On Error Resume Next
Встановіть xChks = ActiveSheet.CheckBoxes
Для кожного xChk В xChks
xChk.Select
Selection.OnAction = "ObjChkChange"
Далі
End Sub

Sub ObjChkChange()
Dim xChk Як CheckBox
Встановіть xChk = ActiveSheet.CheckBoxes(Application.Caller)
З xChk.TopLeftCell.Offset(, 1)
Якщо xChk.Value = xlOff Тоді
.Value = ""
Ще
.Value = Дата
End If
Кінець з
End Sub
There are no comments posted here yet
Залишайте свої коментарі
Публікація як гість
×
Оцініть цю публікацію:
0  Персонажі
Рекомендовані місця