2010-03-27 18:35:49 +0000 2010-03-27 18:35:49 +0000
11
11

Automatycznie aktualizuj komórkę w Excelu o aktualny znacznik czasu, gdy inna komórka zostanie zmieniona

W arkuszu kalkulacyjnym Excel chciałbym automatycznie zaktualizować komórkę z bieżącą datą i godziną, gdy inna komórka zostanie zmieniona (jak znacznik czasu aktualizacji).

Dla każdego wiersza istnieje znacznik czasu. Chciałbym je zaktualizować, gdy tylko jedna z poprzedzających komórek w wierszu zostanie zaktualizowana.

Czy masz jakieś wskazówki, jak to zrobić?

Odpowiedzi (2)

9
9
9
2010-03-27 18:44:25 +0000

Utwórz komórkę z wartością Now(). Sformatuj ją jak chcesz - na przykład yyyy/mm/dd HH:mm:ss dla pełnego timestampu w czasie 24-godzinnym.

Teraz, tak długo jak auto-recalculate (domyślnie) jest ustawione, za każdym razem, gdy inna komórka zostanie zmieniona, otrzymasz nowy znacznik czasu.

Po głębszym zastanowieniu, jeśli chcesz mieć zakodowany znacznik czasu, który jest aktualizowany tylko przez działania, które nie obejmują takich rzeczy, jak otwieranie skoroszytu, drukowanie itp. możesz utworzyć makro dołączone do arkusza roboczego Zmiana. Ustaw komórkę docelową jako tekst, z określonym formatowaniem, jak poprzednio. Użyj czegoś takiego jak: Sheet1.Cells[].Value = Text(Now(), “yyyy/mm/dd HH:mm:ss”) na zdarzeniu Worksheet_Change.

Jeśli umieścisz to w szablonie, który ładuje się przy starcie, nigdy więcej nie będziesz musiał o tym myśleć.

8
8
8
2010-05-15 01:52:21 +0000

http://chandoo.org/wp/2009/01/08/timestamps-excel-formula-help/ ma szczegóły jak zaimplementować znaczniki czasu używając formuły rekurencyjnej. Działają one świetnie.

W artykule opisano, jak najpierw włączyć formułę kołową (domyślnie wyłączona), a następnie jak utworzyć formułę kołową, która automatycznie wstawia znacznik czasu, gdy do określonej komórki zostanie wstawiona wartość.

Jeśli komórka, która ma zawierać znacznik czasu to B3, a komórka, która ma być obserwowana to C3, to formuła ma postać:

=IF(C3<>"",IF(B3="",NOW(),B3),"")

Czyli, gdy C3 nie jest pusta, ustawiamy B3 na wartość NOW() (jeśli B3 była pusta) w przeciwnym razie aktualną wartość B3.

Wydaje się to stabilne podczas aktualizacji i zapisów.