Wstawianie daty i godziny w Excelu za pomocą VBA jest tak proste, jak pisanie formuły w komórce.
Kod znacznika czasu VBA to:
Zakres („A1”). Wartość = Format(Teraz, "mm/dd/rrrr GG:mm:ss")Ten kod pokaże aktualną datę i godzinę w komórce A1. I tak, to jest to. zrobione.
Funkcja „Teraz” zwraca bieżącą datę i godzinę, a funkcja „Format” formatuje dane wyjściowe do formatu „mm/dd/rrrr GG:mm:ss”.
Pokaż datę i godzinę za każdym razem, gdy wprowadzana jest zmiana za pomocą VBA.
Załóżmy, że przygotowałeś arkusz. W tym arkuszu chcesz, aby czas był wyświetlany w kolumnie B za każdym razem, gdy ktoś dokona wpisu w kolumnie A.
Teraz potrzebujemy kodu znacznika czasu VBA, który jest uruchamiany za każdym razem, gdy wprowadzana jest zmiana w kolumnie A.
Poniższy kod ułatwia pracę.
Uruchom makro po wprowadzeniu zmiany (obsługa zdarzeń zmiany arkusza roboczego)
Private Sub Worksheet_Change(ByVal Target As Range) Jeśli nie przecina(Target, Range("A:A")) jest niczym, a następnie przy błędzie Wznów następne If Target.Value = "" ThenTarget.Offset(0, 1) = "" Else Target .Offset(0, 1).Value = Format(Teraz, "mm/dd/rrrr GG:mm:ss") End If End If End Sub
Aby uruchomić ten kod, otwórz VBA i kliknij dwukrotnie arkusz w oknie projektu, w którym chcesz wyświetlić znacznik czasu.
Teraz musimy użyć obsługi zdarzeń VBA, ponieważ chcemy uruchamiać nasz kod za każdym razem, gdy wprowadzana jest zmiana.
Z listy rozwijanej nad kodem wybierz Arkusz.
Teraz obok listy rozwijanej arkusza roboczego zobaczysz kolejną listę rozwijaną. Zawiera wiele programów obsługi zdarzeń. Na razie wybierz „zmień”.
Teraz skopiuj powyższy kod tutaj.
I gotowe. Wróć do swojego arkusza i sprawdź go.
Wyjaśnienie kodu:
- Kod jest zapisywany na arkuszu sheet1 poprzez dwukrotne kliknięcie na nim. Oznacza to, że Twój kod należy tylko do tego arkusza.
- Użyliśmy obsługi zdarzeń „Zmień” w „Arkuszu”, aby wyzwolić nasz kod VBA.
-
Private Sub Worksheet_Change (ByVal Target As Range)
Jest to stała i domyślna nazwa podprogramu obsługi zdarzeń zmiany.
- Chcemy, aby nasz kod uruchamiał zmianę tylko w kolumnie A.
-
Jeśli nie przecina(cel, zakres("A:A")) jest niczym wtedy
Ten wiersz sprawdza, czy zmieniona komórka znajduje się w kolumnie A, czy nie.
- Teraz, jeśli powyższy wiersz zwraca True, to te wiersze są wykonywane
Przy błędzie Wznów dalej If Target.Value = "" ThenTarget.Offset(0, 1) = "" ElseTarget.Offset(0, 1).Value = Format(Teraz, "mm/dd/rrrr GG:mm:ss")
Pierwsza linia ignoruje komunikat o błędzie i uruchamia te dwie linie. Jeśli pominiesz On Błąd Wznów Dalej po usunięciu wartości w kolumnie A zobaczysz komunikat o błędzie.
If Target.Value = "" Wtedy
:- Ten wiersz sprawdza, czy komórka w kolumnie A jest pusta. Jeśli tak, to
Cel.Przesunięcie(0, 1) = ""
:- Ta linia usuwa sąsiednią wartość komórki.
A jeśli Fałsz
Else Target.Offset(0, 1).Value = Format(Teraz, "mm/dd/rrrr GG:mm:ss")
:- Ten wiersz wprowadza aktualną godzinę i datę w sąsiedniej kolumnie A.
- A ostatnie trzy linie po prostu zamykają odpowiedni blok. I gotowe. Teraz masz arkusz, który podaje dokładny czas zmiany dokonanej w komórce kolumny A.
Być może zauważyłeś, że na liście rozwijanej znajduje się kilka programów obsługi zdarzeń. Baw się wokół nich. Spróbuj dowiedzieć się, jak działa każdy program obsługi zdarzeń. A jeśli masz jakiekolwiek trudności, zapisz to w sekcji komentarzy.
Wstaw znacznik daty i czasu za pomocą VBA