Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Использование if then в VBA - Страница 3 - Мир MS Excel

Старая форма входа
  • Страница 3 из 3
  • «
  • 1
  • 2
  • 3
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Использование if then в VBA (Проверка данных макросом)
Использование if then в VBA
light26 Дата: Среда, 06.03.2013, 01:29 | Сообщение № 41
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Цитата (Alex_ST)
Но, честно говоря, учить новичка ещё можно, а такого старожила, как он, - уже надоело.

А что, собственно, плакать-то!? Где учеба? Спать хочу, на работу вставать в 6 утра, но все-равно, специально сидел и просматривал все созданные мной темы.
Так вот, из 53 созданных мной тем, где я просил помочь, Вами, Александр, были отмечены всего 5. И то, в основном, не помощь, а так, общие фразы
Цитата (Alex_ST)
не читатель, а писатель
.
Поэтому давайте не будем рассказывать всем как Вам "надоело"


Я не волшебник. Я только учусь

Сообщение отредактировал light26 - Среда, 06.03.2013, 01:42
 
Ответить
Сообщение
Цитата (Alex_ST)
Но, честно говоря, учить новичка ещё можно, а такого старожила, как он, - уже надоело.

А что, собственно, плакать-то!? Где учеба? Спать хочу, на работу вставать в 6 утра, но все-равно, специально сидел и просматривал все созданные мной темы.
Так вот, из 53 созданных мной тем, где я просил помочь, Вами, Александр, были отмечены всего 5. И то, в основном, не помощь, а так, общие фразы
Цитата (Alex_ST)
не читатель, а писатель
.
Поэтому давайте не будем рассказывать всем как Вам "надоело"

Автор - light26
Дата добавления - 06.03.2013 в 01:29
Wasilich Дата: Среда, 06.03.2013, 01:31 | Сообщение № 42
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Здравствуйте!
В соответствии с приложенным примером, может так надо.
К сообщению приложен файл: 9294744.xls (35.5 Kb)
 
Ответить
СообщениеЗдравствуйте!
В соответствии с приложенным примером, может так надо.

Автор - Wasilich
Дата добавления - 06.03.2013 в 01:31
light26 Дата: Среда, 06.03.2013, 01:34 | Сообщение № 43
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Цитата (Wasilic)
может так надо.

То, что надо, спасибо.
Я и понимаю код и прочитать могу и отредактировать, где это необходимо. Еще раз спасибо


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Цитата (Wasilic)
может так надо.

То, что надо, спасибо.
Я и понимаю код и прочитать могу и отредактировать, где это необходимо. Еще раз спасибо

Автор - light26
Дата добавления - 06.03.2013 в 01:34
light26 Дата: Среда, 06.03.2013, 01:37 | Сообщение № 44
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
nerv, спасибо.
посмотрев код Wasilicа, я понял о чем шла речь
Цитата (nerv)
все правильно ты писал Только с новой строки надо было начинать


Я не волшебник. Я только учусь
 
Ответить
Сообщениеnerv, спасибо.
посмотрев код Wasilicа, я понял о чем шла речь
Цитата (nerv)
все правильно ты писал Только с новой строки надо было начинать

Автор - light26
Дата добавления - 06.03.2013 в 01:37
AlexM Дата: Среда, 06.03.2013, 08:48 | Сообщение № 45
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4509
Репутация: 1128 ±
Замечаний: 0% ±

Excel 2003
Цитата (light26)
То, что надо, спасибо.

А где запрет ввода значений в ячейку А2 больших, чем в ячейке А1?



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
Сообщение
Цитата (light26)
То, что надо, спасибо.

А где запрет ввода значений в ячейку А2 больших, чем в ячейке А1?

Автор - AlexM
Дата добавления - 06.03.2013 в 08:48
Alex_ST Дата: Среда, 06.03.2013, 09:00 | Сообщение № 46
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3209
Репутация: 609 ±
Замечаний: 0% ±

2003
Я три раза повторил, что ошибка в синтаксисе
Цитата (Alex_ST)
тут разве не лишний End If ?
Цитата (Alex_ST)
в синтаксисе проблема
Цитата (Alex_ST)
упорно повторяется одна и та же ошибка в синтаксисе

но Вы, Вадим, это проигнорировали. А тупо проверить мой первый же совет, удалив лишний End If , было трудно?
И только когда Александр написал точно ТО ЖЕ САМОЕ (уж поверьте мне, что однострочная запись типа If…Then… - это точно то же самое, что запись с переносами строки типа If…Then…End If) :
Цитата (nerv)
Только с новой строки надо было начинать
тогда Вы наконец-то отреагировали:
Цитата (light26)
понял о чем шла речь


Цитата (light26)
Разумеется ЭТО не работает
Вы разве не понимаете, что код "не работать" может по разному?
Процедура может вызывать ошибку компиляции (из-за неверного синтаксиса, например) либо ошибку в процессе работы откомпилированного кода и потому при запуске вылетать в отладчик. Либо возможна не правильная работа процедуры, когда ошибки не возникают, но результат не верный.



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Среда, 06.03.2013, 11:01
 
Ответить
СообщениеЯ три раза повторил, что ошибка в синтаксисе
Цитата (Alex_ST)
тут разве не лишний End If ?
Цитата (Alex_ST)
в синтаксисе проблема
Цитата (Alex_ST)
упорно повторяется одна и та же ошибка в синтаксисе

но Вы, Вадим, это проигнорировали. А тупо проверить мой первый же совет, удалив лишний End If , было трудно?
И только когда Александр написал точно ТО ЖЕ САМОЕ (уж поверьте мне, что однострочная запись типа If…Then… - это точно то же самое, что запись с переносами строки типа If…Then…End If) :
Цитата (nerv)
Только с новой строки надо было начинать
тогда Вы наконец-то отреагировали:
Цитата (light26)
понял о чем шла речь


Цитата (light26)
Разумеется ЭТО не работает
Вы разве не понимаете, что код "не работать" может по разному?
Процедура может вызывать ошибку компиляции (из-за неверного синтаксиса, например) либо ошибку в процессе работы откомпилированного кода и потому при запуске вылетать в отладчик. Либо возможна не правильная работа процедуры, когда ошибки не возникают, но результат не верный.

Автор - Alex_ST
Дата добавления - 06.03.2013 в 09:00
light26 Дата: Среда, 06.03.2013, 09:33 | Сообщение № 47
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Цитата (AlexM)
А где запрет ввода значений в ячейку А2 больших, чем в ячейке А1?

Спасибо за замечание.
Буду проводить эксперименты smile


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Цитата (AlexM)
А где запрет ввода значений в ячейку А2 больших, чем в ячейке А1?

Спасибо за замечание.
Буду проводить эксперименты smile

Автор - light26
Дата добавления - 06.03.2013 в 09:33
AlexM Дата: Среда, 06.03.2013, 09:44 | Сообщение № 48
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4509
Репутация: 1128 ±
Замечаний: 0% ±

Excel 2003
Цитата (light26)
Буду проводить эксперименты

Вы уже провели эксперимент с кодом из Сообщения №28?
Иногда кажется, что вы спросили об одном, а ждете ответ о другом. Поэтому ответы не подходят.
Вопрос элементарный, а столько людей ни как ответом не попадут в точку. sad



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
Сообщение
Цитата (light26)
Буду проводить эксперименты

Вы уже провели эксперимент с кодом из Сообщения №28?
Иногда кажется, что вы спросили об одном, а ждете ответ о другом. Поэтому ответы не подходят.
Вопрос элементарный, а столько людей ни как ответом не попадут в точку. sad

Автор - AlexM
Дата добавления - 06.03.2013 в 09:44
light26 Дата: Среда, 06.03.2013, 10:28 | Сообщение № 49
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
AlexM, я очень ценю Вашу помощь. Огромное Вам спасибо.
Просто с Вашим примером мне пришлось долго возиться (F1, перевод), а пример Wasilicа мне более понятен. Я не так сильно напрягался. smile


Я не волшебник. Я только учусь
 
Ответить
СообщениеAlexM, я очень ценю Вашу помощь. Огромное Вам спасибо.
Просто с Вашим примером мне пришлось долго возиться (F1, перевод), а пример Wasilicа мне более понятен. Я не так сильно напрягался. smile

Автор - light26
Дата добавления - 06.03.2013 в 10:28
AlexM Дата: Среда, 06.03.2013, 10:38 | Сообщение № 50
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4509
Репутация: 1128 ±
Замечаний: 0% ±

Excel 2003
Пояснение строк кода
[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
[/vba]
Согласитесь, проще некуда. smile



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеПояснение строк кода
[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
[/vba]
Согласитесь, проще некуда. smile

Автор - AlexM
Дата добавления - 06.03.2013 в 10:38
light26 Дата: Среда, 06.03.2013, 10:53 | Сообщение № 51
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Цитата (AlexM)
Согласитесь, проще некуда

Конечно соглашусь smile
Но. 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]
Меняй адреса ячеек и все :). Хотя "непонятные слова" тоже встречаются smile


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Цитата (AlexM)
Согласитесь, проще некуда

Конечно соглашусь smile
Но. 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]
Меняй адреса ячеек и все :). Хотя "непонятные слова" тоже встречаются smile

Автор - light26
Дата добавления - 06.03.2013 в 10:53
Serge_007 Дата: Среда, 06.03.2013, 10:58 | Сообщение № 52
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата (light26)
target.value мне не известны

Не ври


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (light26)
target.value мне не известны

Не ври

Автор - Serge_007
Дата добавления - 06.03.2013 в 10:58
RAN Дата: Среда, 06.03.2013, 11:01 | Сообщение № 53
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Serge_007, а он и не врет.
Ну, подумаешь, объяснил ему это только я раз 10.
А он все равно не знает! biggrin


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеSerge_007, а он и не врет.
Ну, подумаешь, объяснил ему это только я раз 10.
А он все равно не знает! biggrin

Автор - RAN
Дата добавления - 06.03.2013 в 11:01
AlexM Дата: Среда, 06.03.2013, 11:04 | Сообщение № 54
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4509
Репутация: 1128 ±
Замечаний: 0% ±

Excel 2003
Intersect тут проверяется попадает ли Target в диапазон
OffSet(-1,0) - смещение относительно Target. -1-а строка, 0 столбцов. Указывает на ячейку выше Target



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеIntersect тут проверяется попадает ли Target в диапазон
OffSet(-1,0) - смещение относительно Target. -1-а строка, 0 столбцов. Указывает на ячейку выше Target

Автор - AlexM
Дата добавления - 06.03.2013 в 11:04
light26 Дата: Среда, 06.03.2013, 11:19 | Сообщение № 55
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Цитата (Serge_007)
Не ври

Все....


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Цитата (Serge_007)
Не ври

Все....

Автор - light26
Дата добавления - 06.03.2013 в 11:19
Alex_ST Дата: Среда, 06.03.2013, 11:22 | Сообщение № 56
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3209
Репутация: 609 ±
Замечаний: 0% ±

2003
Цитата (AlexM)
Intersect тут проверяется попадает ли Target в диапазон
OffSet(-1,0) - смещение относительно Target. -1-а строка, 0 столбцов. Указывает на ячейку выше Target
[offtop]Тёзка, это напоминает старый анекдот:

Вовочка ест яблоко, а потом спрашивает у папы:
- Папа, а почему яблоко коричневое?
Папа:
- Понимаешь, когда ты откусываешь яблоко, у него выделяется сок. Так как в яблочном соке содержится железо, то взаимодействуя с кислородом, оно окисляется и, таким образом, приобретает коричневый цвет.
После небольшой паузы Вовочка спрашивает:
- Папа, а ты с кем сейчас разговаривал? :)[/offtop]



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Среда, 06.03.2013, 11:23
 
Ответить
Сообщение
Цитата (AlexM)
Intersect тут проверяется попадает ли Target в диапазон
OffSet(-1,0) - смещение относительно Target. -1-а строка, 0 столбцов. Указывает на ячейку выше Target
[offtop]Тёзка, это напоминает старый анекдот:

Вовочка ест яблоко, а потом спрашивает у папы:
- Папа, а почему яблоко коричневое?
Папа:
- Понимаешь, когда ты откусываешь яблоко, у него выделяется сок. Так как в яблочном соке содержится железо, то взаимодействуя с кислородом, оно окисляется и, таким образом, приобретает коричневый цвет.
После небольшой паузы Вовочка спрашивает:
- Папа, а ты с кем сейчас разговаривал? :)[/offtop]

Автор - Alex_ST
Дата добавления - 06.03.2013 в 11:22
AlexM Дата: Среда, 06.03.2013, 11:24 | Сообщение № 57
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4509
Репутация: 1128 ±
Замечаний: 0% ±

Excel 2003
[offtop] biggrin



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
Сообщение[offtop] biggrin

Автор - AlexM
Дата добавления - 06.03.2013 в 11:24
light26 Дата: Среда, 06.03.2013, 11:36 | Сообщение № 58
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Мне стыдно. Ухожу


Я не волшебник. Я только учусь
 
Ответить
СообщениеМне стыдно. Ухожу

Автор - light26
Дата добавления - 06.03.2013 в 11:36
AlexM Дата: Среда, 06.03.2013, 11:39 | Сообщение № 59
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4509
Репутация: 1128 ±
Замечаний: 0% ±

Excel 2003
Цитата (light26)
Мне стыдно

Учится не должно быть стыдно.
Надо запоминать или записывать готовые решения, чтобы при случае заглянуть в свой "справочник".



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
Сообщение
Цитата (light26)
Мне стыдно

Учится не должно быть стыдно.
Надо запоминать или записывать готовые решения, чтобы при случае заглянуть в свой "справочник".

Автор - AlexM
Дата добавления - 06.03.2013 в 11:39
Wasilich Дата: Среда, 06.03.2013, 16:26 | Сообщение № 60
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Цитата (AlexM)
Надо запоминать или записывать готовые решения, чтобы при случае заглянуть в свой "справочник".

А еще иметь полезные ссылочки типа
http://msoffice.nm.ru/faq/macros.htm
 
Ответить
Сообщение
Цитата (AlexM)
Надо запоминать или записывать готовые решения, чтобы при случае заглянуть в свой "справочник".

А еще иметь полезные ссылочки типа
http://msoffice.nm.ru/faq/macros.htm

Автор - Wasilich
Дата добавления - 06.03.2013 в 16:26
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Использование if then в VBA (Проверка данных макросом)
  • Страница 3 из 3
  • «
  • 1
  • 2
  • 3
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!