Страницы: 1
RSS
Поиск текста в фигурах.
 
Здравствуйте. Прошу подсказать: есть ли способ поиска текста в фигурах (прямоугольник, треугольник и т. п.)?
Или функция "Найти и заменить" актуальна только для поиска текста в ячейках?
Буду признателен за конструктивный совет.
Изменено: paylevan - 31.05.2014 14:41:13
 
Код
Sub FindTextInShape()
Dim x As Object
    For Each x In ActiveSheet.DrawingObjects
        If x.Characters.Text = [A1] Then MsgBox "Текст найден в " & x.Name
    Next
End Sub
 
Искомый текст в ячейке А1
 
Офф.
Цитата
Юрий М пишет: paylevan, а вот Вас - что заставляет писать через строку?
иногда это не вина пишущего: жмешь Enter а перескакивает через строку.
Закономерности не выявил, но несколько раз замечал.
Но читать так действительно неудобно. Я, чаще всего, такие посты пропускаю.
 
Цитата
Михаил С. пишет: иногда это не вина пишущего: жмешь Enter а перескакивает через строку.
Я не замечал пока. Но если и так, то ведь никто не мешает исправить.
 
Юрий М, спасибо за ответ.
Но пока не удалось с помощью приведённого Вами макроса осуществить поиск в фигурах искомого текста, указанного в ячейке А1.
При выполнении макроса ничего не происходит. Возможно, нужны ещё какие-либо действия?
 
У меня находит. Никаких дополнительных действий не нужно.
 
Юрий М, спасибо, получилось, но частично, ибо поиск осуществляется лишь в том случае, если точно и полностью указана вся фраза.
Но необходимо, чтобы находились и отдельные слова, так, как это и реализовано в стандартной функции "Найти и заменить" для ячеек.
Изменено: paylevan - 31.05.2014 14:25:34
 
Про вхождение (частично) Вы не словом раньше не обмолвились...
Код
If x.Characters.Text Like "*" & [A1] & "*" Then MsgBox "Текст найден в " & x.Name 
 
Юрий М, возможно сделать так, чтобы при поиске регистр букв не учитывался? На данный момент, если, к примеру, искомое слово в фигуре начинается с заглавной буквы, а в ячейке А1 оно указывается со строчной, то слово не находится.
 
Возможно.  
 
Юрий М, буду признателен, если подскажете, как это реализовать.
 
Первой строкой НАД ВСЕМИ МАКРОСАМИ:
Код
Option Compare Text  
 
Нет уверенности, что Вы ещё чего-нибудь не вспомните))
Варианты:
1. Написать перед Sub строку: Option Compare Text
2. Переводить в коде строки в одинаковый регистр, например, в верхний. См. справку по Ucase
 
Юрий М, Игорь, спасибо большое! Получилось то, что было необходимо.
Изменено: paylevan - 31.05.2014 15:06:17
Страницы: 1
Читают тему
Наверх