Jak wstawić Czas do arkusza Excela, który nie powinien aktualizować się automatycznie?

0

Przyjaciele Chcę wstawić czas w zakresie, który nie powinien być aktualizowany automatycznie. Na przykład, jeśli w komórce nr k5 jest jakakolwiek wartość, bieżący czas należy automatycznie wstawić do komórki nr N5. Podobnie, jeśli w k6 jest jakakolwiek wartość, bieżący czas powinien zostać automatycznie wstawiony do N6 itd. Ponadto nie należy go automatycznie aktualizować. Próbowałem użyć tej formuły

= JEŻELI (K5 <0, „”, JEŻELI (K5 = 0, „”, TERAZ ()))

Ta formuła działa, ale automatycznie aktualizuje czas za pomocą zegara systemowego. Chcę, żeby nie aktualizowała czasu. Migawkę można także zobaczyć - http://i.imgur.com/3JIwORg.png PROSZĘ POMÓC MI ... DZIĘKI DUŻO ...

ramji
źródło

Odpowiedzi:

0

Najpierw wprowadź dane kolumny K, a następnie uruchom to krótkie makro:

Sub RecordTime()
   Dim rng As Range, r As Range, d As Date
   Set rng = Intersect(Range(Cells(5, "K"), Cells(Rows.Count, "K")), ActiveSheet.UsedRange)
   d = TimeSerial(Hour(Now()), Minute(Now()), Second(Now()))

   For Each r In rng
      If r.Value <> "" Then
         r.Offset(0, 3) = d
      End If
   Next r
End Sub

EDYCJA 1:

Oto automatyczna wersja kodu. Wstaw następujące makro zdarzenia w obszarze kodu arkusza roboczego:

Private Sub Worksheet_Change(ByVal Target As Range)
   Dim rng As Range, r As Range, d As Date
   Set rng = Intersect(Range(Cells(5, "K"), Cells(Rows.Count, "K")), ActiveSheet.UsedRange)

   If Intersect(Target, rng) Is Nothing Then Exit Sub
   If Target.Count > 1 Then Exit Sub
   If Target.Offset(0, 1).Value <> "" Then Exit Sub

   d = TimeSerial(Hour(Now()), Minute(Now()), Second(Now()))
   Application.EnableEvents = False
      Target.Offset(0, 1).Value = d
   Application.EnableEvents = True

End Sub

Jeżeli zmienisz komórkę w kolumnie K czas zostaną automatycznie zapisane w kolumnie L .

Ponieważ jest to kod arkusza roboczego, jest bardzo łatwy w instalacji i automatyczny w użyciu:

  1. kliknij prawym przyciskiem myszy nazwę zakładki w dolnej części okna Excela
  2. wybierz Wyświetl kod - wyświetli się okno VBE
  3. wklej i zamknij okno VBE

Jeśli masz jakiekolwiek wątpliwości, najpierw wypróbuj je w arkuszu próbnym.

Jeśli zapiszesz skoroszyt, makro zostanie z nim zapisane. Jeśli używasz wersji Excela późniejszej niż 2003, musisz zapisać plik jako .xlsm zamiast .xlsx

Aby usunąć makro:

  1. wywołać okna VBE jak wyżej
  2. wyczyść kod
  3. zamknij okno VBE

Aby dowiedzieć się więcej o makrach, zobacz:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

i

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

Aby dowiedzieć się więcej o makrach zdarzeń (kod arkusza), zobacz:

http://www.mvps.org/dmcritchie/excel/event.htm

Makra muszą być włączone, aby to działało!

Uczeń Gary'ego
źródło
Drogi Uczniu Gary'ego, dziękuję za miłą odpowiedź, proszę pana, kody sugerowane przez pana nie działają. kiedy wstawię jakąkolwiek wartość w k5, a następnie k6 i tak dalej ... nie pokazuje czasu w N5 i N6 i tak dalej ... proszę pomóż mi proszę pana ...
ramji
Drogi Uczniu Gary'ego, sugerowane przez ciebie kody wstawiają od razu czas w kolumnie N. Chcę, aby po wprowadzeniu jakichkolwiek danych w komórce nr k5 automatycznie wstawił bieżący czas, który pozostaje niezmienny, tzn. Nie powinien się zmieniać w systemie zegar w N5. Ponadto jest wzór na całej kolumny K więc wprowadzić pewne dane w wierszach od A do J, obliczone wartości są automatycznie wstawiane w kolumnie K. Należy pomóc ..
Ramji
@ramji Zobacz moją EDYCJĘ # 1
Gary's Student