2

Как заставить Excel автоматически вставлять текущую дату и текущее время в ячейку, когда я вставляю значение в другую ячейку в той же строке?

Я знаю CTRL +; и CTRL +: ярлыки, но я бы предпочел, чтобы ячейка была просто заполнена автоматически.

2 ответа2

5

Если вы довольны написанием VBA, вы можете сделать это с событием Worksheet Change.

Вот пример кода, который будет записывать сегодняшнюю дату и время в столбце B при каждом изменении ячейки в столбце A:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim CellToChange As Range

    'Check the change happened in Column A (i.e. 1)
    If Target.Column = 1 Then
        'The Cell we want to change is on this row, but in Column B (i.e. 2)
        Set CellToChange = Target.Worksheet.Cells(Target.Row, 2)

        'Only write in Today's date and the time if the cell is empty
        If IsEmpty(CellToChange) Then
            CellToChange.Value = Now
        End If
    End If
End Sub

Если вам нужно, чтобы изменения произошли в разных столбцах, просто измените номера столбцов в:

If Target.Column = 1 Then

а также:

Set CellToChange = Target.Worksheet.Cells(Target.Row, 2)

Чтобы получить этот код на рабочем листе, нажмите Alt+F11 , дважды щелкните свой лист в древовидном представлении слева, а затем вставьте код в открывшееся окно.

1

Я думаю, вы могли бы предварительно заполнить столбец формулой = if(cell1 = ""; ""; today()), но это будет автоматически обновляться каждый раз, когда вы открываете электронную таблицу, я не думаю, что есть способ получить ее чтобы заполнить дату в той точке, в которую вы заполняете ячейку, оставьте ее в этой дате. Во всяком случае, не без программирования.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .