![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 03.06.2010
Сообщений: 13
|
![]()
Доброго времени суток! Требуется решить вот такую задачу.
В 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 но он не работает. Во-первых, данные вносятся в столбец расположенный правее (а не левее), а при смене знака перед единицей при повторном изменении данных в ячейке выскакивает ошибка. Прошу о помощи. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 06.08.2009
Сообщений: 472
|
![]()
файл выложите
|
![]() |
![]() |
![]() |
#3 |
Участник клуба
Регистрация: 28.06.2009
Сообщений: 1,950
|
![]()
Присвоение значения ячейке - Cells(i,j).Value=...
А что вы хотите получить в Application.WorksheetFunction.Count A(Rows(Target.Row)) + 1? |
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 28.06.2009
Сообщений: 1,950
|
![]()
Полагаю, вам нужно так сделать:
Код:
|
![]() |
![]() |
![]() |
#5 | |
Пользователь
Регистрация: 03.06.2010
Сообщений: 13
|
![]() Цитата:
1) Данное действие не должно затрагивать самую верхнюю строчку. 2) При массовом изменении ячеек (путем перетягивания ячейки со значением за правый нижний уголок) дата не выставляется. |
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
Так устроит?
Код:
Чем шире угол зрения, тем он тупее.
|
![]() |
![]() |
![]() |
#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 |
![]() |
![]() |
![]() |
#8 | |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]() Цитата:
Код:
Чем шире угол зрения, тем он тупее.
|
|
![]() |
![]() |
![]() |
#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 |
![]() |
![]() |
![]() |
#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 |