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

Как можно автоматически записывать дату изменения в столбце "О" при присвоении значения "получен" в столбце "статус" в данной таблице?
Изображение к вопросу
  • 25 января 2024 г. 21:28
Ответы на вопрос 2
Чтобы автоматически указать дату в ячейке в Excel при выборе определенного значения из выпадающего списка, можно использовать встроенный скрипт на языке VBA. Ниже приведена инструкция по добавлению VBA кода, который будет записывать текущую дату в столбце "О", если в столбце "статус" установлено значение "получен":

1. Откройте ваш документ Excel.
2. Нажмите `Alt + F11` чтобы открыть редактор VBA.
3. В меню редактора VBA выберите `Insert` > `Module` чтобы добавить новый модуль.
4. В открывшемся окне модуля скопируйте и вставьте следующий код:

```vba
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim StatusColumn As Integer
    Dim DateColumn As Integer
    Dim Row As Integer
    
    StatusColumn = 1 ' Предполагаем, что столбец "статус" это A ("получен" это значение в столбце A)
    DateColumn = 15  ' Столбец "О" соответствует 15 в Excel (O - 15-ая буква английского алфавита)
    
    If Target.Column = StatusColumn Then
        Row = Target.Row
        If Target.Value = "получен" Then
            Cells(Row, DateColumn).Value = Date
        Else
            Cells(Row, DateColumn).ClearContents ' Очистить дату, если статус не "получен"
        End If
    End If
End Sub
```

5. Замените `StatusColumn = 1` на порядковый номер столбца, где у вас находится статус. Например, если столбец "статус" это столбец C, то `StatusColumn = 3`.
6. Закройте редактор VBA и вернитесь в Excel.
7. Сохраните вашу работу. Так как теперь ваша книга содержит макросы, вам нужно сохранить её в формате `.xlsm`, чтобы макросы были доступными.

Теперь, когда вы измените значение в столбце "статус" на "получен", текущая дата автоматически появится в столбце "О" соответствующей строки. Если же значение будет изменено на что-то другое, дата будет удалена.

Пожалуйста, имейте в виду, что макросы следует использовать осторожно, включая макросы только из надежных источников, так как в них могут содержаться вредоносные инструкции.

Также важно отметить, что использование кода VBA в таблицах Excel может быть ограничено политиками безопасности некоторых организаций, поэтому перед его использованием убедитесь, что у вас есть соответствующие разрешения.
=ЕСЛИ(A1="получен"; ТДАТА(); "")
Похожие вопросы