Страницы: 1
RSS
Макрос, выделяющий все ячейки с текстовым форматом, и работающий так же быстро, как окно “НАЙТИ”
 
Если на листе нажать Ctrl+F, появится окно “Найти и заменить”  
В поле “Найти” вводим нужный текст, нажимаем кнопку “Найти все”  
Снизу в окно добавляется таблица, и список ячеек, в которых имеется искомый текст.  
Если при этом нажать Ctrl+A, на листе выделятся все ячейки, содержащие искомый текст.  
Даже если закроем окно “Найти и заменить”, ячейки остаются выделенными.  
Это очень удобная вещь, можно быстро выделить все нужные ячейки (содержащие нужный текст, с жирным шрифтом, с определенным цветом заливки или шрифта или все ячейки допустим имеющие формат - Текстовый)  
 
Но вот беда, пытаюсь рекордером записать этот процесс, ничего не записывается.  
 
 
Вопрос – можно ли написать макрос, который:  
 
- Выделяет на листе все ячейки, содержащие нужныйткест  
- Выделяет на листе все ячейки, имеющие формат – Текстовый  
- Выделяет на листе все ячейки, с жирным шрифтом и написанные курсивом  
 
Но чтобы макрос работал так же быстро как встроенное окно ЭКСа“Найти и заменить”
 
вот скрин
 
Если для себя, то ответ:   
http://help.libreoffice.org/Writer/Using_Wildcards_in_Text_Searches/ru   
http://help.libreoffice.org/Common/List_of_Regular_Expressions/ru
 
спасибо надеюсь там не на английском :-(
 
найдите в себе силы проверить.
 
Недавно писал, что-то подобное, если Вам подходит, могу на быструю руку передать под "выделение ячеек"
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
честно говоря не очень понял  
в этих ссылках речь идёт о готовом продукте WRITER, который работает с разными приложениями? (например и с MS WORD, и с MS EXCEL)  
 
Или я ошибаюсь?  
 
но мне нужен макрос в ЭКСЕЛЬ  
 
в любом случае спасибо
 
спасибо сейчас скачал ваш файл  
 
посмотрю и обязательно отпишусь
 
В ссылках - справка по LibreOffice.  
Это другой офисный пакет. В нем есть аналог Excel - Calc.  
В нем есть возможность поиска с использованием регулярных выражений.  
 
"но мне нужен макрос в ЭКСЕЛЬ"  
"Но чтобы макрос работал так же быстро как встроенное окно ЭКСа“Найти и заменить”"  
 
Как Вам угодно. По-моему, требования не сочетаемые.  
 
На самом деле, я немного лукавлю.    
Можно попробовать написать xll. Или поискать готовую.  
Мне видится, что скачать и использовать calc для Ваших поисковых задач быстрее, чем писать велосипед.
 
{quote}{login=}{date=13.04.2012 10:20}{thema=}{post}Но чтобы макрос работал так же быстро как встроенное окно ЭКСа“Найти и заменить{/post}{/quote}Насколько я знаю, самодельные функции (процедуры) всегда будут работать медленнее.
 
Естественно.  
Единственная надежда на xll.  
 
А вообще у ТС хорошие запросы:  
 
"Макрос... работающий так же быстро, как окно “НАЙТИ” "  
"Код, ... дающий быстрый результа"
 
{quote}{login= Б А Х Т И Ё Р}{date=12.04.2012 06:43}{post}...Это очень удобная вещь, можно быстро выделить все нужные ячейки...{/post}{/quote}  
Спасибо Вам, я не знала что через найти-заменить можно выделить нужные данные.
 
Первые две хотелки:  
- Выделяет на листе все ячейки, содержащие нужныйткест  
реализовать легко. Идея такова - считываем диапазон в массив, в цикле из найденныых формируем строку адреса, при переполнении сбрасываем в Union. Мы с Димой(R Dmitry) выкладывали как-то примеры кода. Еще раз писать желания нет.  
 
- Выделяет на листе все ячейки, имеющие формат – Текстовый  
моментально, через specialcells.  
 
Третья будет медленней из-за необходимости многократных обращений к листу.  
Хотя можно попробовать через анализ xml. Д.б. быстрей. Пример работы с xml выкладывал у Сережи на форуме: http://www.excelworld.ru/forum/1-553-1#6453
Я сам - дурнее всякого примера! ...
 
LightZ – продолжаю изучать ваш код  
 
subtlety–просто этивопросы  были куском задачи, а я ступил и выложил в этой теме только часть задачи,  
поэтому я и пишу, что нужен макрос в эксель, чтобы соединить  его с другим макросом (из-за этого вариант с Calcне очень подходит)  
 
Юрий М,subtlety – (насчет скорости)-разве “Главная-Найти и выделить-Перейти-Выделить-Пустые ячейки” со штатными средствами и код Selection.SpecialCells(xlCellTypeBlanks).Select не работают одинаково быстро?  
 
KukLP – с xmlпрограммированием я ещё не знаком, а массивы в VBA я только начинаю изучать :-)  
а за это – “...Выделяет на листе все ячейки, имеющие формат – Текстовый ----- моментально, через specialcells…” –спасибо, как-то сразу не сообразил, уже использовал в другой теме. Только вот, если в ячейке написано слово морковь и формат у этой ячейки числовой, то specialcells  все равно выделяет его. Мне это не мешает, написал для других, кому это вдруг может оказаться важным  
 
P.S. Интересно, а почему не получается рекордером записать действие, описанное в начале (Выделение сразу всех результатов поиска)
 
"а я ступил и выложил в этой теме только часть задачи"  
Да нет, это нормальная практика.  
"не работают одинаково быстро?"  
тесты не проводил, должны одинаково. Но обычно гипотетический макрос на VBA работает медленнее встроенных функций.  
"P.S..."  
Ну в Excel много чего не записывается макрорекордером.
 
спасибо за обстоятельный ответ
 
Игорь(EducatedFool) выкладывал в общий доступ, поэтому позволю себе продублировать его труд. Игорь, надеюсь, не будет протиив. Код очень профессионален.
Я сам - дурнее всякого примера! ...
 
Ну не берет форум такие файлы. Переименуйте в SearchWorkbook.xla после скачки.
Я сам - дурнее всякого примера! ...
 
спасибо, сейчас скачал, посмотрю  
 
34141
Страницы: 1
Читают тему
Наверх