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

Jak automatycznie dodawać / wprowadzać aktualną datę / godzinę w komórce za pomocą dwukrotnego kliknięcia w programie Excel?

Jeśli musisz często wstawiać bieżącą datę lub godzinę w arkuszu, możesz wypróbować metodę opisaną w tym artykule. Ten artykuł pomoże Ci automatycznie dodać lub wprowadzić aktualną datę lub datę w określonych komórkach zakresu za pomocą tylko dwukrotnego kliknięcia.

Kliknij dwukrotnie, aby automatycznie dodać / wprowadzić aktualną datę lub godzinę z kodem VBA


Kliknij dwukrotnie, aby automatycznie dodać / wprowadzić aktualną datę lub godzinę z kodem VBA

Możesz uruchomić poniższy kod VBA, aby automatycznie dodać aktualną datę lub godzinę w komórce za pomocą dwukrotnego kliknięcia. Wykonaj następujące czynności.

1. Kliknij prawym przyciskiem myszy zakładkę Arkusz, do której chcesz wstawić bieżącą datę do określonych komórek, a następnie wybierz Wyświetl kod z menu po kliknięciu prawym przyciskiem myszy.

2. w Microsoft Visual Basic for Applications okno, skopiuj i wklej poniższy kod VBA do okna Code.

Kod VBA: kliknij dwukrotnie, aby dodać aktualną datę do komórki

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

Uwagi:

1. W kodzie A1: B10 to zakres, do którego dodasz bieżącą datę.
2. Jeśli chcesz dodać aktualną datę i godzinę do komórki, wymień Data z Teraz() w kodzie. Możesz je zmieniać według potrzeb.

3. naciśnij inny + Q klawisze jednocześnie, aby zamknąć Microsoft Visual Basic for Applications i wróć do arkusza.

Od teraz po dwukrotnym kliknięciu dowolnej komórki w określonym zakresie A1: B10. Bieżąca data lub godzina zostanie wprowadzona automatycznie.


Powiązane artykuły:


Najlepsze narzędzia biurowe

Kutools dla programu Excel rozwiązuje większość problemów i zwiększa produktywność o 80%

  • Ponowne użycie: Szybko włóż złożone wzory, wykresy i wszystko, czego używałeś wcześniej; Szyfruj komórki z hasłem; Utwórz listę mailingową i wysyłaj e-maile ...
  • Pasek Super Formula (łatwo edytować wiele wierszy tekstu i formuły); Układ do czytania (łatwe odczytywanie i edytowanie dużej liczby komórek); Wklej do filtrowanego zakresu...
  • Scal komórki / wiersze / kolumny bez utraty danych; Podziel zawartość komórek; Połącz zduplikowane wiersze / kolumny... Zapobiegaj zduplikowanym komórkom; Porównaj zakresy...
  • Wybierz Duplikat lub Unikalny Wydziwianie; Wybierz puste wiersze (wszystkie komórki są puste); Super Find i Fuzzy Find w wielu zeszytach ćwiczeń; Losowy wybór ...
  • Dokładna kopia Wiele komórek bez zmiany odwołania do formuły; Automatyczne tworzenie odniesień do wielu arkuszy; Wstaw punktory, Pola wyboru i nie tylko ...
  • Wyodrębnij tekst, Dodaj tekst, Usuń według pozycji, Usuń przestrzeń; Tworzenie i drukowanie podsumowań stronicowania; Konwertuj zawartość komórek i komentarze...
  • Super filtr (zapisz i zastosuj schematy filtrów do innych arkuszy); Zaawansowane sortowanie według miesiąca / tygodnia / dnia, częstotliwości i innych; Specjalny filtr pogrubieniem, kursywą ...
  • Połącz skoroszyty i arkusze robocze; Scal tabele na podstawie kluczowych kolumn; Podziel dane na wiele arkuszy; Konwersja wsadowa xls, xlsx i PDF...
  • Ponad 300 zaawansowanych funkcji. Obsługuje Office / Excel 2007-2021 i 365. Obsługuje wszystkie języki. Łatwe wdrażanie w przedsiębiorstwie lub organizacji. Pełne funkcje 30-dniowa bezpłatna wersja próbna. 60-dniowa gwarancja zwrotu pieniędzy.
karta kte 201905

Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę

  • Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
  • Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
  • Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!
officetab dół
Sortuj komentarze według
Komentarze (28)
Brak ocen. Oceń jako pierwszy!
Ten komentarz został zminimalizowany przez moderatora na stronie
Jak możemy to rozszerzyć, aby dodać większy zakres komórek? Dodałem te dodatkowe komórki w zakresie do kodu: (Target, Range("C10:C19", "D10:D19", "E10:E19")), jednak daje mi to błąd kompilacji, mówiący "niewłaściwa liczba argumentów lub nieprawidłowe przypisania właściwości”, a następnie podświetla pierwszy wiersz kodu, który podałeś „Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)” Proszę o pomoc.
Ten komentarz został zminimalizowany przez moderatora na stronie
Joel, nie wiem, czy nadal szukasz rozwiązania, ale musisz zmienić kod:

Od: (cel, zakres("C10:C19", "D10:D19", "E10:E19"))
Do: (Cel, Zakres("C10:C19,D10:D19,E10:E19"))

To zrobi to za Ciebie.
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Nick,
Chciałbym uzyskać od Ciebie radę na ten temat....
Mam plik, który nazywam "arkusz wydajności"... W tym arkuszu chciałbym wstawić aktualny czas w zaznaczonych komórkach, kiedy komórka zostanie kliknięta... (Jeśli to możliwe, chciałbym te komórki po czasie wydaje się, że nie można go zmienić .....coś w rodzaju bycia zablokowanym.)
Doceniam Twój czas i z góry dziękuję
Attila, Węgry
exyzee@gmail.com
Ten komentarz został zminimalizowany przez moderatora na stronie
Drogi Attylo,
Wypróbuj poniższy zrzut ekranu, aby wstawić rzeczywisty czas do komórki w określonym zakresie po kliknięciu.
(Nie można osiągnąć funkcji automatycznego blokowania komórek, przepraszam za to)

Private Sub Worksheet_SelectionChange (ByVal Target As Range)
Application.ScreenUpdating = Fałsz
Jeśli nie przecina(cel, zakres("A1:B10")) to nic wtedy
Cancel = True
Formuła docelowa = Data
End If
End Sub
Ten komentarz został zminimalizowany przez moderatora na stronie
Kod naprawdę działa...Dziękuję...dodałem kolejny kod chroniący komórkę po wprowadzeniu danych. Teraz problem polega na tym, że gdy wprowadzę dane, a komórka jest chroniona i przez pomyłkę, jeśli dwukrotnie kliknę chronioną komórkę, powyższy kod działa niepoprawnie dla całego arkusza. Wtedy to nie działa. Muszę odbezpieczyć arkusz, aby uruchomić kod. Jakieś rozwiązanie?

Zastosowany kod ochronny jest poniżej:

Prywatny Sub Worksheet_Change (ByVal Target As Range)
Dim xRg jako zakres
On Error Resume Next
Ustaw xRg = Intersect(Zakres("A1:a1000,b1:b1000,G1:G1000"), Cel)
Jeśli xRg jest niczym, wyjdź z Sub
Cel.Arkusz.Odbezpiecz hasło:="123"
xRg.Zablokowany = Prawda
Cel.Arkusz.Chroń hasło:="123"
End Sub
Ten komentarz został zminimalizowany przez moderatora na stronie
Drogi Paul,
Wypróbuję podany przez Ciebie kod. Cały arkusz będzie chroniony natychmiast po wprowadzeniu danych do jednej z określonych chronionych komórek.
Poza tym, po dwukrotnym kliknięciu chronionej komórki, w moim przypadku nic się nie zmienia w kodzie.
Czy mógłbyś wyjaśnić, co dokładnie próbujesz zrobić z kodem?
Ten komentarz został zminimalizowany przez moderatora na stronie
Przepraszam, rozumiem twój punkt widzenia. (pomiń powyższy kod)
Ten komentarz został zminimalizowany przez moderatora na stronie
Utworzony kod dwukrotnego kliknięcia to:


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Anuluj jako Boolean)
Jeśli nie przecina(cel, zakres("A1:a1000")) to nic wtedy
Cancel = True
Formuła docelowa = Data
End If

Jeśli nie przecina(cel, zakres("b1:b1000")) to nic wtedy
Cancel = True
Cel.Formuła = Czas
End If

Jeśli nie przecina(cel, zakres("g1:g1000")) to nic wtedy
Cancel = True
Cel.Formuła = Czas
End If
End Sub
Ten komentarz został zminimalizowany przez moderatora na stronie
Drogi Paul,
Wypróbuj następujący kod VBA.

Prywatny Sub Worksheet_Change (ByVal Target As Range)
Dim xRg jako zakres
On Error Resume Next
Ustaw xRg = Intersect(Zakres("A1:a1000,b1:b1000,G1:G1000"), Cel)
Jeśli xRg jest niczym, wyjdź z Sub
Cel.Arkusz.Odbezpiecz hasło:="123"
xRg.Zablokowany = Prawda
Cel.Arkusz.Chroń hasło:="123"
End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Anuluj jako Boolean)
Application.EnableEvents = Fałsz
ActiveSheet.Unprotect Password:="123"
Jeśli nie przecina(cel, zakres("A1:a1000")) to nic wtedy
Cancel = True
Formuła docelowa = Data
End If
Jeśli nie przecina(cel, zakres("b1:b1000")) to nic wtedy
Cancel = True
Cel.Formuła = Czas
End If
Jeśli nie przecina(cel, zakres("g1:g1000")) to nic wtedy
Cancel = True
Cel.Formuła = Czas
End If
ActiveSheet.Protect hasło:="123"
Application.EnableEvents = True
End Sub
Ten komentarz został zminimalizowany przez moderatora na stronie
Skopiowałem i wkleiłem kod aktualizujący zakres i nie zadziałało :-(


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Anuluj jako Boolean)
Jeśli nie przecina(cel, zakres("B4:B100")) to nic wtedy
Cancel = True
Formuła docelowa = Now()
End If
End Sub
Ten komentarz został zminimalizowany przez moderatora na stronie
Dzień dobry,
Kod działa dobrze w moim przypadku. Czy możesz mi podać swoją wersję pakietu Office?
Ten komentarz został zminimalizowany przez moderatora na stronie
Witam, kod, który podałeś, działa świetnie. Jestem tylko ciekaw, czy jest jakiś sposób, aby tekst „kliknij dwukrotnie, aby dodać datę” w komórce do czasu wprowadzenia daty. Z góry dziękuję ( staram się, aby mój dokument był jak najbardziej przyjazny dla użytkownika, aby nie mylić moich współpracowników)
Ten komentarz został zminimalizowany przez moderatora na stronie
Witam, powyższy kod zadziałał dla mnie świetnie. Teraz zastanawiam się tylko, czy istnieje sposób, aby tekst „Kliknij dwukrotnie, aby wprowadzić datę” pojawiał się w komórce do czasu wprowadzenia daty. Moim celem jest, aby dokument był jak najbardziej przyjazny dla użytkownika. Z góry dziękuję
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Travis,
Nie możemy zmodyfikować kodu, aby tekst wyświetlał się bezpośrednio w komórce. Ale alternatywnie poniższy zoptymalizowany kod pomoże wyświetlić tekst w komentarzu do komórki, a komentarz zostanie automatycznie usunięty po dwukrotnym kliknięciu komórki w celu wprowadzenia daty.

Private Sub Worksheet_SelectionChange (ByVal Target As Range)
Jeśli nie przecina(cel, zakres("A1:B10")) to nic wtedy
Target.NoteText „kliknij dwukrotnie, aby dodać datę”
End If
End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Anuluj jako Boolean)
Jeśli nie przecina(cel, zakres("A1:B10")) to nic wtedy
Cancel = True
Cel.Komentarz.Usuń
Formuła docelowa = Data
End If
End Sub
Ten komentarz został zminimalizowany przez moderatora na stronie
Witam,

Skopiowałem i wkleiłem powyższy kod dokładnie tak, jak jest zapisany w pustym skoroszycie, jednak u mnie nie działa. Przejrzałem różne źródła w sieci i większość witryn ma format podobny do tego, który jest napisany powyżej. Myślę, że może coś jest nie tak z moim VBA lub niektóre ustawienia nie są włączone. Każda rada byłaby mile widziana. Używam programu Excel dla Office 365 MSO (16.0.11001.20097) w wersji 32-bitowej w systemie Windows 10.
Ten komentarz został zminimalizowany przez moderatora na stronie
Uwielbiam kod i działa świetnie. Jak mogę to zrobić, gdy kliknę dwukrotnie, aby wykonać kod, który pokazuje czas w czasie wojskowym?
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Dylan,
Przepraszamy, nie mogę ci jeszcze w tym pomóc. Dziękuję za Twój komentarz.
Ten komentarz został zminimalizowany przez moderatora na stronie
Myślę, że jeśli wybierzesz format czasu wojskowego dla tej komórki z opcji Format -> Liczba -> Czas w arkuszu, to powinno działać. Na przykład daje opcję 1:30 lub 13:30, więc po prostu wybierz 13:30 i to powinno wystarczyć.
Ten komentarz został zminimalizowany przez moderatora na stronie
Myślę, że jeśli po prostu wybierzesz format czasu wojskowego dla tej komórki z opcji Liczba -> Format czasu, które powinny to zrobić. Na przykład wybierz 13:30 zamiast 1:30, a następnie powinno być wyświetlane w czasie wojskowym.
Ten komentarz został zminimalizowany przez moderatora na stronie
Czy ktoś wie, czy istnieje sposób na wstawienie tego kodu do Excel Online? Użyłem go w wersji na komputery i działało świetnie, ale teraz przenieśliśmy wszystko na platformę online, a moje znaczniki daty i czasu po podwójnym kliknięciu zniknęły i nie mogę dowiedzieć się, jak wyświetlić lub edytować kod. Dzięki.
Ten komentarz został zminimalizowany przez moderatora na stronie
Wstawiłem więc kod i działa świetnie na kilku arkuszach w moim skoroszycie, jednak na niektórych arkuszach po prostu nagle przestaje działać po pewnym wierszu, mimo że mam wpisany prawidłowy zakres. Jakieś przemyślenia, dlaczego tak się może stać.
Ten komentarz został zminimalizowany przez moderatora na stronie
Właśnie tego szukałem - zaoszczędziło to mnóstwo czasu i doceniam dobrze napisane instrukcje. Dziękuję Ci!
Ten komentarz został zminimalizowany przez moderatora na stronie
Witam, kod wiele dla mnie zrobił, Jak mogę ograniczyć kod, aby działał tylko wtedy, gdy pole jest puste. Jeśli w komórce jest już data, podwójne kliknięcie nie powinno nic zrobić, pozdrawiam
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Ahmadzie,
Przepraszam za problem. Aby wypełnić puste komórki datami tylko za pomocą dwukrotnego kliknięcia, możesz zastosować następujący kod VBA, aby to zrobić.
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
Ten komentarz został zminimalizowany przez moderatora na stronie
Ta funkcja nie działała. Podwójne kliknięcie po prostu wprowadza ręczną edycję komórki.
Ten komentarz został zminimalizowany przez moderatora na stronie
Hi Bob,
Kod działa dobrze w moim przypadku. Muszę dowiedzieć się więcej o Twoim problemie, na przykład o wersji programu Excel.
A kod działa tylko na określonych komórkach.
Ten komentarz został zminimalizowany przez moderatora na stronie
Witam wszystkich,

Próbuję użyć tego makra, aby użyć datownika, klikając dwukrotnie kolumnę E i działa, ale kiedy próbuję zreplikować makro, aby zrobić to samo, ale na bieżący czas w kolumnie F nie działa jak widać w załączeniu mam komunikat o błędzie informujący: Wykryto niejednoznaczną nazwę.
Kiedy próbuję zmienić część Sub WorkSheet na inną nazwę i dwukrotnie klikam komórki, nic się nie dzieje.

Czy ktoś mógłby mi w tym pomóc?

Mój kod :


Sub Worksheet_BeforeDoubleClick(ByVal Target jako zakres, Anuluj jako Boolean)
Jeśli nie przecina(cel, zakres("E1:E10000")) to nic wtedy
Cancel = True
Formuła docelowa = Data
End If
End Sub

Sub Worksheet_BeforeDoubleClick(ByVal Target jako zakres, Anuluj jako Boolean)
Jeśli nie przecina(cel, zakres("F1:F10000")) to nic wtedy
Cancel = True
Formuła docelowa = Now()
End If
End Sub
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Louisie,
Replikacja makra spowoduje dwie takie same procedury o tej samej nazwie w jednym oknie kodu arkusza. Program Excel nie zezwala na dwie lub więcej takich samych nazw funkcji w module. Nawet w Wydarzeniach. Prowadzi to do niejednoznaczności.
Jeśli chcesz wykonać inne zadanie na tym samym zdarzeniu, musisz zmodyfikować oryginalny kod do swoich potrzeb.
Poniższy kod VBA może ci wyświadczyć przysługę. Proszę spróbować.
Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Updated by Extendoffice 20221025
    If Not Intersect(Target, Range("E1:E10000")) Is Nothing Then
        Cancel = True
        Target.Formula = Date
    End If
    If Not Intersect(Target, Range("F1:F10000")) Is Nothing Then
        Cancel = True
        Target.Formula = Date
    End If
End Sub
Nie ma tu jeszcze żadnych komentarzy
Zostaw swój komentarz
Publikowanie jako gość
×
Oceń ten post:
0   Postacie
Sugerowane lokalizacje

Bądż na bieżąco

Prawa autorskie © 2009 - www.extendoffice.com. | Wszelkie prawa zastrzeżone. Zasilany przez ExtendOffice, | Mapa strony
Microsoft i logo Office są znakami towarowymi lub zastrzeżonymi znakami towarowymi Microsoft Corporation w Stanach Zjednoczonych i / lub innych krajach.
Chronione przez Sectigo SSL