Но, честно говоря, учить новичка ещё можно, а такого старожила, как он, - уже надоело.
А что, собственно, плакать-то!? Где учеба? Спать хочу, на работу вставать в 6 утра, но все-равно, специально сидел и просматривал все созданные мной темы. Так вот, из 53 созданных мной тем, где я просил помочь, Вами, Александр, были отмечены всего 5. И то, в основном, не помощь, а так, общие фразы
Цитата (Alex_ST)
не читатель, а писатель
. Поэтому давайте не будем рассказывать всем как Вам "надоело"
Цитата (Alex_ST)
Но, честно говоря, учить новичка ещё можно, а такого старожила, как он, - уже надоело.
А что, собственно, плакать-то!? Где учеба? Спать хочу, на работу вставать в 6 утра, но все-равно, специально сидел и просматривал все созданные мной темы. Так вот, из 53 созданных мной тем, где я просил помочь, Вами, Александр, были отмечены всего 5. И то, в основном, не помощь, а так, общие фразы
Цитата (Alex_ST)
не читатель, а писатель
. Поэтому давайте не будем рассказывать всем как Вам "надоело"light26
Я не волшебник. Я только учусь
Сообщение отредактировал light26 - Среда, 06.03.2013, 01:42
упорно повторяется одна и та же ошибка в синтаксисе
но Вы, Вадим, это проигнорировали. А тупо проверить мой первый же совет, удалив лишний End If , было трудно? И только когда Александр написал точно ТО ЖЕ САМОЕ (уж поверьте мне, что однострочная запись типа If…Then… - это точно то же самое, что запись с переносами строки типа If…Then…End If) :
Цитата (nerv)
Только с новой строки надо было начинать
тогда Вы наконец-то отреагировали:
Цитата (light26)
понял о чем шла речь
Цитата (light26)
Разумеется ЭТО не работает
Вы разве не понимаете, что код "не работать" может по разному? Процедура может вызывать ошибку компиляции (из-за неверного синтаксиса, например) либо ошибку в процессе работы откомпилированного кода и потому при запуске вылетать в отладчик. Либо возможна не правильная работа процедуры, когда ошибки не возникают, но результат не верный.
Я три раза повторил, что ошибка в синтаксисе
Цитата (Alex_ST)
тут разве не лишний End If ?
Цитата (Alex_ST)
в синтаксисе проблема
Цитата (Alex_ST)
упорно повторяется одна и та же ошибка в синтаксисе
но Вы, Вадим, это проигнорировали. А тупо проверить мой первый же совет, удалив лишний End If , было трудно? И только когда Александр написал точно ТО ЖЕ САМОЕ (уж поверьте мне, что однострочная запись типа If…Then… - это точно то же самое, что запись с переносами строки типа If…Then…End If) :
Цитата (nerv)
Только с новой строки надо было начинать
тогда Вы наконец-то отреагировали:
Цитата (light26)
понял о чем шла речь
Цитата (light26)
Разумеется ЭТО не работает
Вы разве не понимаете, что код "не работать" может по разному? Процедура может вызывать ошибку компиляции (из-за неверного синтаксиса, например) либо ошибку в процессе работы откомпилированного кода и потому при запуске вылетать в отладчик. Либо возможна не правильная работа процедуры, когда ошибки не возникают, но результат не верный.Alex_ST
С уважением, Алексей MS Excel 2003 - the best!!!
Сообщение отредактировал Alex_ST - Среда, 06.03.2013, 11:01
Вы уже провели эксперимент с кодом из Сообщения №28? Иногда кажется, что вы спросили об одном, а ждете ответ о другом. Поэтому ответы не подходят. Вопрос элементарный, а столько людей ни как ответом не попадут в точку.
Цитата (light26)
Буду проводить эксперименты
Вы уже провели эксперимент с кодом из Сообщения №28? Иногда кажется, что вы спросили об одном, а ждете ответ о другом. Поэтому ответы не подходят. Вопрос элементарный, а столько людей ни как ответом не попадут в точку. AlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
AlexM, я очень ценю Вашу помощь. Огромное Вам спасибо. Просто с Вашим примером мне пришлось долго возиться (F1, перевод), а пример Wasilicа мне более понятен. Я не так сильно напрягался.
AlexM, я очень ценю Вашу помощь. Огромное Вам спасибо. Просто с Вашим примером мне пришлось долго возиться (F1, перевод), а пример Wasilicа мне более понятен. Я не так сильно напрягался. light26
Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("A2,C2")) Is Nothing Then Exit Sub ' Если изменение значений произошли не в А2 и С2, то выход из макроса If Target.Offset(-1, 0) < Target.Value Then Target.Value = "": MsgBox "Смотри че пишешь" 'Если ячейка, которая на одну строку выше той, которую изменили меньше измененной, то очищаем измененную ячейку и выводим сообщение. End Sub
[/vba] Согласитесь, проще некуда.
Пояснение строк кода [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("A2,C2")) Is Nothing Then Exit Sub ' Если изменение значений произошли не в А2 и С2, то выход из макроса If Target.Offset(-1, 0) < Target.Value Then Target.Value = "": MsgBox "Смотри че пишешь" 'Если ячейка, которая на одну строку выше той, которую изменили меньше измененной, то очищаем измененную ячейку и выводим сообщение. End Sub
Конечно соглашусь Но. intersect, target.offset, target.value мне не известны. Принципов их работы я не знаю. А тут [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Not Application.Intersect(Range("C3:C5"), Target) Is Nothing Then If Target.Address = "$C$3" Then If Range("C3") > Range("C2") Then MsgBox "Смотри че пишешь" Range("C3") = 0 End If End If If Target.Address = "$C$5" Then If Range("C5") > Range("C4") Then MsgBox "Смотри че пишешь" Range("C5") = 0 End If End If End If End Sub
[/vba] Меняй адреса ячеек и все :). Хотя "непонятные слова" тоже встречаются
Цитата (AlexM)
Согласитесь, проще некуда
Конечно соглашусь Но. intersect, target.offset, target.value мне не известны. Принципов их работы я не знаю. А тут [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Not Application.Intersect(Range("C3:C5"), Target) Is Nothing Then If Target.Address = "$C$3" Then If Range("C3") > Range("C2") Then MsgBox "Смотри че пишешь" Range("C3") = 0 End If End If If Target.Address = "$C$5" Then If Range("C5") > Range("C4") Then MsgBox "Смотри че пишешь" Range("C5") = 0 End If End If End If End Sub
[/vba] Меняй адреса ячеек и все :). Хотя "непонятные слова" тоже встречаются light26
Intersect тут проверяется попадает ли Target в диапазон OffSet(-1,0) - смещение относительно Target. -1-а строка, 0 столбцов. Указывает на ячейку выше Target
Intersect тут проверяется попадает ли Target в диапазон OffSet(-1,0) - смещение относительно Target. -1-а строка, 0 столбцов. Указывает на ячейку выше TargetAlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
Intersect тут проверяется попадает ли Target в диапазон OffSet(-1,0) - смещение относительно Target. -1-а строка, 0 столбцов. Указывает на ячейку выше Target
[offtop]Тёзка, это напоминает старый анекдот:
Вовочка ест яблоко, а потом спрашивает у папы: - Папа, а почему яблоко коричневое? Папа: - Понимаешь, когда ты откусываешь яблоко, у него выделяется сок. Так как в яблочном соке содержится железо, то взаимодействуя с кислородом, оно окисляется и, таким образом, приобретает коричневый цвет. После небольшой паузы Вовочка спрашивает: - Папа, а ты с кем сейчас разговаривал? :)[/offtop]
Цитата (AlexM)
Intersect тут проверяется попадает ли Target в диапазон OffSet(-1,0) - смещение относительно Target. -1-а строка, 0 столбцов. Указывает на ячейку выше Target
[offtop]Тёзка, это напоминает старый анекдот:
Вовочка ест яблоко, а потом спрашивает у папы: - Папа, а почему яблоко коричневое? Папа: - Понимаешь, когда ты откусываешь яблоко, у него выделяется сок. Так как в яблочном соке содержится железо, то взаимодействуя с кислородом, оно окисляется и, таким образом, приобретает коричневый цвет. После небольшой паузы Вовочка спрашивает: - Папа, а ты с кем сейчас разговаривал? :)[/offtop]Alex_ST
С уважением, Алексей MS Excel 2003 - the best!!!
Сообщение отредактировал Alex_ST - Среда, 06.03.2013, 11:23