Другие языки программирования и технологии
Подскажите, как сделать автоматическое добавление текущей даты в ячейку в excel???
Что надо сделать что бы при заполнении столбца B в столбце A автоматически вставлялась текущая дата?
Вариант Ивана Леконтцева не очень удачный. Он, конечно, работает, но при открытии книги на следующий день или еще позже, даты изменения ячеек пересчитаются на текущую дату.
Данную задачу можно решить макросом по событию изменения на листе, как показал BeS Yara, но код “тяжелый” и очень много ЕСЛИ (если Tab, если Enter, если кликом мышки) .
Предлагаемый вариант решения макросом по событию изменения значений на листе, код помещается в модуль листа, в котором заполняются ячейки колонки В
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then Cells(Target.Row, 1) = IIf(Cells(Target.Row, Target.Column) <> "", Date, "")
End Sub
Данную задачу можно решить макросом по событию изменения на листе, как показал BeS Yara, но код “тяжелый” и очень много ЕСЛИ (если Tab, если Enter, если кликом мышки) .
Предлагаемый вариант решения макросом по событию изменения значений на листе, код помещается в модуль листа, в котором заполняются ячейки колонки В
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then Cells(Target.Row, 1) = IIf(Cells(Target.Row, Target.Column) <> "", Date, "")
End Sub
формула:
=ЕСЛИ (B1>0;СЕГОДНЯ ();"")
Если В1 больше нуля-вставляет текущую дату, иначе пусто-пусто.
Не забудьте ячейки с формулой перевести в формат даты. Так же можно поэкспериментировать с форматом даты...
=ЕСЛИ (B1>0;СЕГОДНЯ ();"")
Если В1 больше нуля-вставляет текущую дату, иначе пусто-пусто.
Не забудьте ячейки с формулой перевести в формат даты. Так же можно поэкспериментировать с форматом даты...
=now()
вставь в ячейку
вставь в ячейку
через формулу подставить дату и потом маркером автозаполнения заполнять весь столбец А
Есть конечно функция СЕГОДНЯ (), но она будет пересчитываться по текущей дате, поэтому не очень подходит (копировать вручную значение тоже не вариант) .
Полуавтоматический вариант предложить сходу могу :)
Создаём макрос:
Sub TodayDay()
Cells(ActiveCell.Row, 1).Value = Date
End Sub
Назначаем макросу горячую клавишу (например Ctrl-D), после ввода данных в столбце B нажимаетм TAB(чтобы покинуть ячейку, но остаться в той-же строке) , потом Ctrl-D.
Если удобнее завершение редактирования по ENTER, то надо в макросе поправить строку куда будет вставляться дата - Cells(ActiveCell.Row - 1, 1).
|======================================================|
Более автоматизированный вариант.
Создаём для ДАННОГО листа макрос:
Private Sub Worksheet_Change(ByVal Target As Range)
If ActiveCell.Column = 3 Then
Cells(ActiveCell.Row, 1).Value = Date
End If
If ActiveCell.Column = 2 Then
Cells(ActiveCell.Row - 1, 1).Value = Date
End If
End Sub
При изменении листа проверяется колонка - если третья, значит завершение ввода было по табу (пишем дату в туже строку, в первую колонку) ; если вторая, значит было завершение ввода данных по ENTER(пишем дату в предидущей строке, в первую колонку) .
На 2003-ем работает.
<updated>
Если после ввода данных во втором столбце завершать ввод кликом мышки куда попало, то этот макрос толку никакого не даст :(
</updated>
Полуавтоматический вариант предложить сходу могу :)
Создаём макрос:
Sub TodayDay()
Cells(ActiveCell.Row, 1).Value = Date
End Sub
Назначаем макросу горячую клавишу (например Ctrl-D), после ввода данных в столбце B нажимаетм TAB(чтобы покинуть ячейку, но остаться в той-же строке) , потом Ctrl-D.
Если удобнее завершение редактирования по ENTER, то надо в макросе поправить строку куда будет вставляться дата - Cells(ActiveCell.Row - 1, 1).
|======================================================|
Более автоматизированный вариант.
Создаём для ДАННОГО листа макрос:
Private Sub Worksheet_Change(ByVal Target As Range)
If ActiveCell.Column = 3 Then
Cells(ActiveCell.Row, 1).Value = Date
End If
If ActiveCell.Column = 2 Then
Cells(ActiveCell.Row - 1, 1).Value = Date
End If
End Sub
При изменении листа проверяется колонка - если третья, значит завершение ввода было по табу (пишем дату в туже строку, в первую колонку) ; если вторая, значит было завершение ввода данных по ENTER(пишем дату в предидущей строке, в первую колонку) .
На 2003-ем работает.
<updated>
Если после ввода данных во втором столбце завершать ввод кликом мышки куда попало, то этот макрос толку никакого не даст :(
</updated>
Похожие вопросы
- Дублирование ячеек в Excel
- Как отобразить текущее дата и время на форме в Делфи?
- Подскажите как сделать прозрачный фон вместо белого
- подскажите как сделать такую анимацию.
- 3D MAX 9 освещение сцены (интерьер) Подскажите ! ?Как сделать что бы было видно освещение при его настройки в сцене, а
- Подскажите как сделать данную программу?
- подскажите, нужно сделать базу клиентов на сервере и клиент на Delphi
- Народ, подскажите, как сделать анимационную фотографию, только не gif, а то в нем качество сильно теряется?
- Я делаю сайт.Подскажите,как сделать ,чтоб картинку не могли сохранить?подробнее-В ПОЯСНЕНИЯХ! помогите
- Подскажите как сделать светодиод в 3d max