Как да записвам автоматично датата и часа при промяна на клетката?
За нас е лесно да вмъкнем статична дата и час ръчно или да вмъкнем динамична дата, променяща се със системното време с формула. Ако искате автоматично да записвате датата и часа, когато променяте или въвеждате стойности, този проблем може да е малко по-различен за справяне. Но в тази статия можете да разрешите тази задача със следните стъпки.
Записвайте датата и часа автоматично, когато клетката се промени с VBA код
Записвайте датата и часа автоматично, когато клетката се промени с VBA код
Например, имам диапазон от стойности и сега, когато променям или въвеждам нови стойности в колона B, искам автоматично да записват текущата дата и час в колона C, както е показано на следната екранна снимка:
Можете да завършите тази задача със следния VBA код. Моля, направете следното:
1. Задръжте натиснат ALT + F11 за да отворите Прозорец на Microsoft Visual Basic за приложения.
2. След това изберете използвания работен лист отляво Project Explorer, щракнете два пъти върху него, за да отворите Модулии след това копирайте и поставете следния VBA код в празния модул:
VBA код: Автоматично записване на дата и час при промяна на клетката
Private Sub Worksheet_Change(ByVal Target As Range)
'Update 20140722
Dim WorkRng As Range
Dim Rng As Range
Dim xOffsetColumn As Integer
Set WorkRng = Intersect(Application.ActiveSheet.Range("B:B"), Target)
xOffsetColumn = 1
If Not WorkRng Is Nothing Then
Application.EnableEvents = False
For Each Rng In WorkRng
If Not VBA.IsEmpty(Rng.Value) Then
Rng.Offset(0, xOffsetColumn).Value = Now
Rng.Offset(0, xOffsetColumn).NumberFormat = "dd-mm-yyyy, hh:mm:ss"
Else
Rng.Offset(0, xOffsetColumn).ClearContents
End If
Next
Application.EnableEvents = True
End If
End Sub
3. След това запазете и затворете този код, за да се върнете към работния лист, сега, когато промените стойността на клетката или въведете нови данни в колона B, датата и часът ще бъдат записани автоматично в колона C.
Забележки:
1. В горния код можете да промените „Б:Б” към всяка друга колона, в която искате да промените стойностите на клетките в този скрипт: Задайте WorkRng = Intersect(Application.ActiveSheet.Range("B:B"), Target).
2. С това xOffsetColumn = 1 скрипт, можете да вмъкнете и актуализирате датата и часа в първата колона до колоната с променяща се стойност, можете да промените числото 1 на други числа, като 2,3,4,5...това означава, че датата ще бъде вмъкната втора, трета, четвърта или пета колона освен колоната с променени стойности.
3. Когато изтриете стойност в променената колона, датата и часът също ще бъдат премахнати.
Най-добрите инструменти за продуктивност в офиса
Усъвършенствайте уменията си за Excel с Kutools за Excel и изпитайте ефективност, както никога досега. Kutools за Excel предлага над 300 разширени функции за повишаване на производителността и спестяване на време. Щракнете тук, за да получите функцията, от която се нуждаете най-много...
Раздел Office Внася интерфейс с раздели в Office и прави работата ви много по-лесна
- Разрешете редактиране и четене с раздели в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Отваряйте и създавайте множество документи в нови раздели на един и същ прозорец, а не в нови прозорци.
- Увеличава вашата производителност с 50% и намалява стотици кликвания на мишката за вас всеки ден!