Остановить макрос если в ячейке есть определенный текст
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
Ответить
Сообщение Добрый день. Имеется следующий код: [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]
Так нужно? [vba]Код
If InStr(Range("A1"), Range("B1")) = 0 Then Range("A1") = Range("A1") & " / " & Range("B1")
[/vba] _Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: 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
Ответить
Сообщение _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
Интуитивно понятный код - это когда интуитивно понятно, что это код.
Ответить
Сообщение Я бы немного иначе написал.[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
Ответить
Сообщение 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 по-любому считает все аргументы, а потом выбирает из них
Зачем лишний раз переписывать ячейку А1? И зачем лишний раз загружать в память объединение А1 и В1 для случая, когда InStr дает число? Iif это не ЕСЛИ в Excel, Iif по-любому считает все аргументы, а потом выбирает из них _Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: 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
Интуитивно понятный код - это когда интуитивно понятно, что это код.
Ответить
Сообщение Это да, мне просто Iif больше нравится В том числе и тем, что по-любому считает все аргументы
Автор - StoTisteg Дата добавления - 04.10.2018 в 00:01
RAN
Дата: Четверг, 04.10.2018, 01:42 |
Сообщение № 8
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
мне просто Iif больше нравится
аргумент, конечно, сурьёзный. Но не настолько, чтобы применять весьма сомнительное решение вместо правильного.
мне просто Iif больше нравится
аргумент, конечно, сурьёзный. Но не настолько, чтобы применять весьма сомнительное решение вместо правильного.RAN
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение мне просто 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
Интуитивно понятный код - это когда интуитивно понятно, что это код.
Ответить
Сообщение RAN , да как сказать сомнительное... Он мне потому и нравится, что если ВНЕЗАПНО выяснится, что нужно ещё и ошибки юзверя отловить, достаточно перед iif Err.Clear On Error Resume Next вставить, а не городить обработку в обоих ветках...Автор - StoTisteg Дата добавления - 04.10.2018 в 10:20