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

Як автоматично додавати / вводити поточну дату / час у клітинку подвійним клацанням у програмі Excel?

Якщо вам потрібно часто вставляти поточну дату або час дати в аркуш, ви можете спробувати метод у цій статті. Ця стаття допоможе вам автоматично додавати або вводити поточну дату або зубчик дати у вказані комірки діапазону лише подвійним клацанням.

Двічі клацніть, щоб автоматично додати / ввести поточну дату або час за допомогою коду VBA


Двічі клацніть, щоб автоматично додати / ввести поточну дату або час за допомогою коду VBA


Ви можете запустити наведений нижче код VBA, щоб автоматично додати поточну дату або час у клітинку подвійним клацанням. Будь ласка, виконайте наступне.

1. Клацніть правою кнопкою миші вкладку Аркуш, до якої потрібно вставити поточну дату у зазначені комірки, а потім виберіть Переглянути код з меню, що клацне правою кнопкою миші.

2 В Microsoft Visual basic для програм вікно, скопіюйте та вставте наведений нижче код VBA у вікно коду.

Код VBA: Двічі клацніть, щоб додати поточну дату в клітинку

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("A1:B10")) Is Nothing Then
        Cancel = True
        Target.Formula = Date
    End If
End Sub

примітки:

1. У коді A1: B10 - діапазон, до якого ви додасте поточну дату.
2. Якщо вам потрібно додати час поточної дати в клітинку, будь ласка, замініть Дата з Зараз () в коді. Ви можете змінювати їх, як вам потрібно.

3. прес інший + Q клавіші одночасно, щоб закрити Microsoft Visual Basic для додатків вікно та поверніться до робочого аркуша.

Відтепер, при подвійному клацанні будь-якої комірки в заданому діапазоні A1: B10. Поточну дату або час буде введено автоматично.


Статті по темі:


Найкращі інструменти для підвищення продуктивності офісу

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% та зменшує сотні клацань миші для вас щодня!
дно офісної таблиці
Коментарі (26)
Поки немає оцінок. Оцініть першим!
Цей коментар був мінімізований модератором на сайті
Як розширити це, щоб додати більше діапазону клітинок? Я додав до коду цю додаткову клітинку з діапазоном діапазонів: (Ціль, діапазон("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"))

Це зробить це за вас.
Цей коментар був мінімізований модератором на сайті
Привіт Нік,
Я хотів би отримати від вас пораду на цю тему....
У мене є файл, який я називаю "табл. продуктивності".... На цьому аркуші я хотів би вставити фактичний час у вибрані клітинки, коли клікнути клітинку... (Якщо можливо, я б хотів, щоб ці клітинки після того, як час стає незмінним .....щось на кшталт заблокованого.)
Я ціную ваш час і заздалегідь дякую
Аттіла, Угорщина
exyzee@gmail.com
Цей коментар був мінімізований модератором на сайті
Шановний Аттіла,
Спробуйте наведений нижче знімок екрана, щоб вставити фактичний час до комірки в певний діапазон, коли його натиснути.
(Функція автоматичного блокування клітинок не може бути досягнута, вибачте за це)

Приватний додатковий аркуш_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = Невірний
Якщо не перетинається(ціль, діапазон("A1:B10")) - це нічого
Скасувати = Правда
Target.Formula = Дата
End If
End Sub
Цей коментар був мінімізований модератором на сайті
Код дійсно працює... Дякую...я додав ще один код для захисту клітинки після введення даних. Тепер проблема полягає в тому, що після того, як я введу дані, і клітинка буде захищена, і помилково, якщо я двічі клацну захищену клітинку, наведений вище код буде неправильним для всього аркуша. Тоді це не працює. Мені потрібно зняти захист аркуша, щоб опублікувати код. Будь-яке рішення?

Нижче наведено код захисту, який використовується:

Приватний допоміжний робочий лист_Change(ByVal Target As Range)
Dim xRg As Range
On Error Resume Next
Встановіть xRg = Intersect(Діапазон("A1:a1000,b1:b1000,G1:G1000"), Ціль)
Якщо xRg — нічого, вийдіть із Sub
Target.Worksheet.Unprotect Password:="123"
xRg.Locked = Правда
Target.Worksheet.Protect Password:="123"
End Sub
Цей коментар був мінімізований модератором на сайті
Шановний Поле,
Я пробую код, який ви надали. Весь робочий аркуш буде захищено відразу, як тільки я введу дані в будь-яку із зазначених захищених клітинок.
Крім того, при подвійному клацанні на захищеній комірці нічого не змінюється в коді в моєму випадку.
Не могли б ви пояснити, що саме ви намагаєтеся зробити з кодом?
Цей коментар був мінімізований модератором на сайті
Вибачте, я зрозумів вашу думку. (пропустіть код вище)
Цей коментар був мінімізований модератором на сайті
Створений код введення подвійним клацанням:


Приватний підпорядкований робочий лист_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Якщо не перетинається(ціль, діапазон("A1:a1000")) це нічого, то
Скасувати = Правда
Target.Formula = Дата
End If

Якщо не перетинається(ціль, діапазон("b1:b1000")) це нічого, то
Скасувати = Правда
Target.Formula = Час
End If

Якщо не перетинається(ціль, діапазон("g1:g1000")) це нічого, то
Скасувати = Правда
Target.Formula = Час
End If
End Sub
Цей коментар був мінімізований модератором на сайті
Шановний Поле,
Будь ласка, спробуйте наступний код VBA.

Приватний допоміжний робочий лист_Change(ByVal Target As Range)
Dim xRg As Range
On Error Resume Next
Встановіть xRg = Intersect(Діапазон("A1:a1000,b1:b1000,G1:G1000"), Ціль)
Якщо xRg — нічого, вийдіть із Sub
Target.Worksheet.Unprotect Password:="123"
xRg.Locked = Правда
Target.Worksheet.Protect Password:="123"
End Sub

Приватний підпорядкований робочий лист_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Application.EnableEvents = False
ActiveSheet.Unprotect Password:="123"
Якщо не перетинається(ціль, діапазон("A1:a1000")) це нічого, то
Скасувати = Правда
Target.Formula = Дата
End If
Якщо не перетинається(ціль, діапазон("b1:b1000")) це нічого, то
Скасувати = Правда
Target.Formula = Час
End If
Якщо не перетинається(ціль, діапазон("g1:g1000")) це нічого, то
Скасувати = Правда
Target.Formula = Час
End If
ActiveSheet.Protect Password:="123"
Application.EnableEvents = True
End Sub
Цей коментар був мінімізований модератором на сайті
Я скопіював та вставив код, оновлюючи діапазон, і він не спрацював :-(


Приватний підпорядкований робочий лист_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Якщо не перетинається(ціль, діапазон("B4:B100")) це нічого, то
Скасувати = Правда
Target.Formula = Зараз()
End If
End Sub
Цей коментар був мінімізований модератором на сайті
Добрий день,
У моєму випадку код працює добре. Чи можете ви сказати мені свою версію Office?
Цей коментар був мінімізований модератором на сайті
Привіт, код, який ви надали, чудово працює. Мені просто цікаво, чи є якийсь спосіб, щоб текст «двічі клацніть, щоб додати дату» у клітинку, доки дата не буде введена. Наперед дякую (я намагаюся зробити свій документ максимально зручним для користувача, щоб не заплутати моїх колег)
Цей коментар був мінімізований модератором на сайті
Привіт, наведений вище код чудово спрацював для мене. Тепер мені просто цікаво, чи є спосіб, щоб текст «Двічі клацніть, щоб ввести дату» з’являвся в клітинці, доки дата не буде введена. Моя мета — зробити документ максимально зручним для користувачів. Заздалегідь спасибі
Цей коментар був мінімізований модератором на сайті
Привіт, Тревіс!
Ми не можемо змінити код, щоб текст відображався безпосередньо в клітинці. Але як альтернатива, оптимізований нижче код допоможе відобразити текст у коментарі комірки, а коментар буде видалено автоматично після подвійного клацання клітинки, щоб ввести дату.

Приватний додатковий аркуш_SelectionChange(ByVal Target As Range)
Якщо не перетинається(ціль, діапазон("A1:B10")) - це нічого
Target.NoteText "двічі клацніть, щоб додати дату"
End If
End Sub

Приватний підпорядкований робочий лист_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Якщо не перетинається(ціль, діапазон("A1:B10")) - це нічого
Скасувати = Правда
Target.Comment.Delete
Target.Formula = Дата
End If
End Sub
Цей коментар був мінімізований модератором на сайті
Привіт там,

Я скопіював та вставив наведений вище код точно так, як він записаний у порожню книгу, однак для мене він не працює. Я переглянув різні джерела в Інтернеті, і більшість сайтів мають формат, схожий на те, що написано вище. Я думаю, можливо, щось не так з моїм VBA або деякі налаштування не ввімкнені. Буду вдячний за будь-яку пораду. Я використовую Excel для Office 365 MSO (16.0.11001.20097) 32-розрядної у Windows 10.
Цей коментар був мінімізований модератором на сайті
Подобається код, і він чудово працює. Як я можу зробити це так, коли я двічі клацну, щоб виконати код, він показує час за військовим часом?
Цей коментар був мінімізований модератором на сайті
Привіт, Ділан,
На жаль, поки що не можу вам допомогти. Дякуємо за коментар.
Цей коментар був мінімізований модератором на сайті
Я думаю, що якщо ви виберете формат військового часу для цієї клітинки з параметрів Формат -> Число -> Час у вашому аркуші, це має працювати. Наприклад, він дає можливість вибрати 1:30 або 13:30, тож ви просто виберіть 13:30, і це має зробити це.
Цей коментар був мінімізований модератором на сайті
Я думаю, що якщо ви просто виберете формат військового часу для цієї клітинки з параметрів Число -> Формат часу, це має зробити це. Наприклад, ви виберете 13:30 замість 1:30, і тоді воно має відображатися за військовим часом.
Цей коментар був мінімізований модератором на сайті
Хтось знає, чи є спосіб вставити цей код в Excel Online? Я використовував його з настільною версією, і він працював чудово, але тепер ми перенесли все на онлайн-платформу, і мої позначки дати та часу при подвійному клацанні зникли, і я не можу зрозуміти, як переглянути або відредагувати код. Спасибі.
Цей коментар був мінімізований модератором на сайті
Тому я вставив код, і він чудово працює на кількох аркушах моєї робочої книги, однак на деяких аркушах він просто раптово перестає працювати після певного рядка, навіть якщо я ввів правильний діапазон. Будь-які думки про те, чому це може статися.
Цей коментар був мінімізований модератором на сайті
Це саме те, що я шукав - це заощадить масу часу, і я ціную добре написані інструкції. Дякую!
Цей коментар був мінімізований модератором на сайті
Привіт, код багато зробив для мене. Як я можу обмежити роботу коду, лише якщо поле пусте. Якщо в комірці вже є дата, подвійне клацання нічого не робитиме, з повагою
Цей коментар був мінімізований модератором на сайті
Привіт, Ахмад,
Вибачте за неприємності. Щоб заповнити порожні клітинки датами лише подвійним клацанням миші, ви можете застосувати наступний код VBA, щоб це зробити.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Updated by Extendoffice 20220609
    If Not Intersect(Target, Range("B1:C20")) Is Nothing Then
        If Target.Value = "" Then
            Cancel = True
            Target.Formula = Date
        End If
    End If
End Sub
Цей коментар був мінімізований модератором на сайті
Ця функція не працювала. Подвійне клацання просто вводить вручну редагування комірки.
Цей коментар був мінімізований модератором на сайті
Привіт Боб,
У моєму випадку код працює добре. Мені потрібно дізнатися більше про вашу проблему, наприклад, вашу версію Excel.
І код працює лише для вказаних вами осередків.
There are no comments posted here yet
Залишайте свої коментарі
Публікація як гість
×
Оцініть цю публікацію:
0   Персонажі
Рекомендовані місця