|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
03.06.2010, 18:01 | #1 |
Пользователь
Регистрация: 03.06.2010
Сообщений: 13
|
Изменение ячейки в Excel
Доброго времени суток! Требуется решить вот такую задачу.
В Excel-ком файле в столбце №19 можно выбирать значения из списка (реализовано с помощью функции "Проверка данных") Необходимо в столбец 18 вносить дату последнего изменения данных в соответствующей ячейке столбца 19. Данный лист будут использовать несколько человек, поэтому надежность очень важна. Я пробовал использовать макрос Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 19 Then Cells(Target.Row, Application.WorksheetFunction.Count A(Rows(Target.Row)) + 1) = Now End Sub но он не работает. Во-первых, данные вносятся в столбец расположенный правее (а не левее), а при смене знака перед единицей при повторном изменении данных в ячейке выскакивает ошибка. Прошу о помощи. |
03.06.2010, 18:07 | #2 |
Форумчанин
Регистрация: 06.08.2009
Сообщений: 472
|
файл выложите
|
03.06.2010, 18:07 | #3 |
Участник клуба
Регистрация: 28.06.2009
Сообщений: 1,950
|
Присвоение значения ячейке - Cells(i,j).Value=...
А что вы хотите получить в Application.WorksheetFunction.Count A(Rows(Target.Row)) + 1? |
03.06.2010, 18:09 | #4 |
Участник клуба
Регистрация: 28.06.2009
Сообщений: 1,950
|
Полагаю, вам нужно так сделать:
Код:
|
04.06.2010, 10:09 | #5 | |
Пользователь
Регистрация: 03.06.2010
Сообщений: 13
|
Цитата:
1) Данное действие не должно затрагивать самую верхнюю строчку. 2) При массовом изменении ячеек (путем перетягивания ячейки со значением за правый нижний уголок) дата не выставляется. |
|
04.06.2010, 10:29 | #6 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Так устроит?
Код:
Чем шире угол зрения, тем он тупее.
|
04.06.2010, 10:56 | #7 |
Пользователь
Регистрация: 03.06.2010
Сообщений: 13
|
Модифицировал, теперь первая строчка работает как надо. Но с перетаскиванием проблема по прежнему.
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 19 And Target.Row <> 1 Then Cells(Target.Row, 18).Value = Now If Target.Column = 16 And Target.Row <> 1 Then Cells(Target.Row, 17).Value = Now End Sub |
04.06.2010, 11:05 | #8 | |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Цитата:
Код:
Чем шире угол зрения, тем он тупее.
|
|
04.06.2010, 11:15 | #9 |
Пользователь
Регистрация: 03.06.2010
Сообщений: 13
|
Не работает.
Вот мой фрагмент. Перетаскивание должно работать в 16-м столбце. Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 19 And Target.Row <> 1 Then Cells(Target.Row, 18).Value = Now If Target.Column = 16 And Target.Row <> 1 Then Cells(Target.Row, 17).Value = Now Target.Offset(, -1) = Now End Sub |
04.06.2010, 11:21 | #10 | |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Цитата:
Код:
Чем шире угол зрения, тем он тупее.
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сохранение книги Excel по названию ячейки и по пути ячейки | IFRSoff | Microsoft Office Excel | 16 | 07.06.2012 16:58 |
Выравнивание по центру ячейки в Excel | Абдуллаев Рустам | БД в Delphi | 3 | 09.05.2009 23:17 |
Excel 2003 заблокировал ячейки... | Smiley | Microsoft Office Excel | 1 | 07.04.2009 17:17 |
Защитить ячейки в Excel | Т@тьян@ | Общие вопросы Delphi | 2 | 29.04.2008 14:47 |
изменение заблокированной ячейки макросом | Slim | Microsoft Office Excel | 3 | 29.04.2007 13:19 |