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

Вход

Регистрация

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

 

= Мир MS Excel/Остановить макрос если в ячейке есть определенный текст - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Остановить макрос если в ячейке есть определенный текст
Garik007 Дата: Среда, 03.10.2018, 16:27 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 102
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013, 2016
Добрый день. Имеется следующий код:
[vba]
Код
Range("A1") = Range("A1") & " / " & Range("B1")
[/vba]
который в ячейку А1 добавляет текст из ячейки В1.
Вопрос: как сделать так, чтобы перед добавлением текста осуществлялась проверка уже имеющегося текста в ячейке А1?
Пример: в ячейке А1 имеется текст "77 / район / улица", в ячейке В1 текст "район" макрос не выполняется, если в ячейке А1 имеется текст "77 / район / улица", в ячейке В1 текст "дом", в результате в ячейке А1 появляется текст "77 / район / улица / дом".
 
Ответить
СообщениеДобрый день. Имеется следующий код:
[vba]
Код
Range("A1") = Range("A1") & " / " & Range("B1")
[/vba]
который в ячейку А1 добавляет текст из ячейки В1.
Вопрос: как сделать так, чтобы перед добавлением текста осуществлялась проверка уже имеющегося текста в ячейке А1?
Пример: в ячейке А1 имеется текст "77 / район / улица", в ячейке В1 текст "район" макрос не выполняется, если в ячейке А1 имеется текст "77 / район / улица", в ячейке В1 текст "дом", в результате в ячейке А1 появляется текст "77 / район / улица / дом".

Автор - Garik007
Дата добавления - 03.10.2018 в 16:27
_Boroda_ Дата: Среда, 03.10.2018, 16:30 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16718
Репутация: 6505 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Так нужно?
[vba]
Код
If InStr(Range("A1"), Range("B1")) = 0 Then Range("A1") = Range("A1") & " / " & Range("B1")
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак нужно?
[vba]
Код
If InStr(Range("A1"), Range("B1")) = 0 Then Range("A1") = Range("A1") & " / " & Range("B1")
[/vba]

Автор - _Boroda_
Дата добавления - 03.10.2018 в 16:30
Garik007 Дата: Среда, 03.10.2018, 16:33 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 102
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013, 2016
_Boroda_, оперативненько, спасибо, то что нужно.
 
Ответить
Сообщение_Boroda_, оперативненько, спасибо, то что нужно.

Автор - Garik007
Дата добавления - 03.10.2018 в 16:33
StoTisteg Дата: Среда, 03.10.2018, 22:02 | Сообщение № 4
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
Я бы немного иначе написал.[vba]
Код
Range("A1")=Iif(InStr(Range("A1"), Range("B1")) = 0, Range("A1") & " / " & Range("B1"), Range("A1"))
[/vba]


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеЯ бы немного иначе написал.[vba]
Код
Range("A1")=Iif(InStr(Range("A1"), Range("B1")) = 0, Range("A1") & " / " & Range("B1"), Range("A1"))
[/vba]

Автор - StoTisteg
Дата добавления - 03.10.2018 в 22:02
boa Дата: Среда, 03.10.2018, 22:22 | Сообщение № 5
Группа: Друзья
Ранг: Ветеран
Сообщений: 559
Репутация: 167 ±
Замечаний: 0% ±

365
Range("A1")=Iif(InStr(Range("A1"), Range("B1")) = 0, Range("A1") & " / " & Range("B1"), Range("A1"))

тогда уже
[vba]
Код
Range("A1") = Range("A1") & IIf(InStr(Range("A1"), Range("B1")) = 0, " / " & Range("B1"), "")
[/vba]


 
Ответить
Сообщение
Range("A1")=Iif(InStr(Range("A1"), Range("B1")) = 0, Range("A1") & " / " & Range("B1"), Range("A1"))

тогда уже
[vba]
Код
Range("A1") = Range("A1") & IIf(InStr(Range("A1"), Range("B1")) = 0, " / " & Range("B1"), "")
[/vba]

Автор - boa
Дата добавления - 03.10.2018 в 22:22
_Boroda_ Дата: Среда, 03.10.2018, 22:31 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 16718
Репутация: 6505 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Зачем лишний раз переписывать ячейку А1? И зачем лишний раз загружать в память объединение А1 и В1 для случая, когда InStr дает число? Iif это не ЕСЛИ в Excel, Iif по-любому считает все аргументы, а потом выбирает из них


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЗачем лишний раз переписывать ячейку А1? И зачем лишний раз загружать в память объединение А1 и В1 для случая, когда InStr дает число? Iif это не ЕСЛИ в Excel, Iif по-любому считает все аргументы, а потом выбирает из них

Автор - _Boroda_
Дата добавления - 03.10.2018 в 22:31
StoTisteg Дата: Четверг, 04.10.2018, 00:01 | Сообщение № 7
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
Это да, мне просто Iif больше нравится :) В том числе и тем, что
по-любому считает все аргументы


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеЭто да, мне просто Iif больше нравится :) В том числе и тем, что
по-любому считает все аргументы

Автор - StoTisteg
Дата добавления - 04.10.2018 в 00:01
RAN Дата: Четверг, 04.10.2018, 01:42 | Сообщение № 8
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
мне просто Iif больше нравится

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


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
мне просто Iif больше нравится

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

Автор - RAN
Дата добавления - 04.10.2018 в 01:42
StoTisteg Дата: Четверг, 04.10.2018, 10:20 | Сообщение № 9
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
RAN, да как сказать сомнительное... Он мне потому и нравится, что если ВНЕЗАПНО выяснится, что нужно ещё и ошибки юзверя отловить, достаточно перед iif Err.Clear On Error Resume Next вставить, а не городить обработку в обоих ветках...


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеRAN, да как сказать сомнительное... Он мне потому и нравится, что если ВНЕЗАПНО выяснится, что нужно ещё и ошибки юзверя отловить, достаточно перед iif Err.Clear On Error Resume Next вставить, а не городить обработку в обоих ветках...

Автор - StoTisteg
Дата добавления - 04.10.2018 в 10:20
  • Страница 1 из 1
  • 1
Поиск:

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