|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
30.07.2009, 19:38 | #1 |
Форумчанин
Регистрация: 20.03.2009
Сообщений: 272
|
поиск через VBA
Всем привет!
Нужно в xls документе найти все значения геймс и добавить ниже них по пустой строчке. Вот попробовал такой код, который выдает макросрекордер Код:
Да и если кто-то подскажет как можно нормально добавлять строки, не через сендкис. И как можно узнать текущее положение ячейки, то буду очень благодарен |
30.07.2009, 20:29 | #2 |
Форумчанин
Регистрация: 03.04.2009
Сообщений: 412
|
Попробуйте так:
Код:
|
30.07.2009, 22:35 | #3 |
Форумчанин
Регистрация: 17.07.2009
Сообщений: 519
|
pivas,
Ваш код не будет находить a) Ячейки, содержащие "games" как часть текста b) Ячейки с "games" не в первой колонке Кроме того если "games" будет найдено в последней строке листа, код так же даст ошибку Tirendus, попробуйте следующее: cм. пост http://www.programmersforum.ru/showp...46&postcount=6 Последний раз редактировалось Aent; 31.07.2009 в 03:43. Причина: Убран ошибочный код. См. ccылку |
30.07.2009, 23:10 | #4 |
Форумчанин
Регистрация: 03.04.2009
Сообщений: 412
|
Согласен по всем пунктам. Но я и не претендовал на самое элегантное решение. Ваше решение безусловно интереснее, но попробуйте заполнить словом games первую колонку, хотя бы до 10 строки и запустите макрос. Затем заполните первую строку колонок на 10 и повторите. Код хороший, поэтому есть смысл подправить.
|
31.07.2009, 01:02 | #5 |
Форумчанин
Регистрация: 20.03.2009
Сообщений: 272
|
Спасибо, завтра на работе испробую код... есть один вопрос, он будет искать в рваных массивах? тут вроде бы usedrange врядли поможет. У меня слово games находиться в разных кусках документа, не соединенных. Завтра выложу документ. Большое спасибо
|
31.07.2009, 02:42 | #6 |
Форумчанин
Регистрация: 17.07.2009
Сообщений: 519
|
pivas, Большое спасибо за справедливое замечание. Поторопился.
Исправленный код: Код:
1) Метод .find , применённый к рангу r найдёт значение в первой ячейке этого ранга только если начинать поиск с ячейки следующей за последней. Так как сканирование ранга осуществляется циклически и поиск начинается с ячейки следующей за указанной в параметре after. 2) Если мы нашли строку в последней строке нашего ранга, то вставлять чистую строку не надо по определению. 3) Если присутствует значение в последней строке листа, то Excel не разрешит вставку строк и макрос выдаст сообщение о невозможности вставки строки. Последний раз редактировалось Aent; 31.07.2009 в 03:41. |
31.07.2009, 05:26 | #7 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Aent +1
Чем шире угол зрения, тем он тупее.
Последний раз редактировалось SAS888; 31.07.2009 в 05:38. |
31.07.2009, 11:10 | #8 |
Форумчанин
Регистрация: 20.03.2009
Сообщений: 272
|
чёрт возьми, код просто идеальный огромное спасибо
|
31.07.2009, 13:49 | #9 |
Форумчанин
Регистрация: 20.03.2009
Сообщений: 272
|
Поскольку вопрос непосредственно касается темы поиска, думаю, создавать новую тему не рационально.
В процессе работы с этим поиском я понял, что его нужно применять еще в одном месте, без всяких проверок. Я бы поменял что нужно, но не совсем понимаю такой код, дальше примитивных циклов пока не зашел =\. В общем, по тому столбцу (все games расположены именно в этом столбце), где найдено поле "games", нужно выделить и копировать всё содержимое начиная от ячейки снизу от games до слов "Total Dounlowds" да, Downloads пишеться через "w" и с буквой "a", но тут какие-то иностранцы, потому копировать нужно всё до "Total Downloads" or "Total Dowulowds". З.Ы. что-то многовато у меня вопросов сегодня |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перенос данных в нужные ячейки через VBA | Detockin | Microsoft Office Excel | 0 | 12.03.2009 12:04 |
Печать листа через VBA | Волк | Microsoft Office Excel | 1 | 27.02.2009 11:37 |
Ячейка как список (через VBA) | maxic | Microsoft Office Excel | 5 | 23.01.2009 00:10 |
[vba]поиск по сторокам в excel | CJartem | Microsoft Office Excel | 9 | 19.05.2008 11:31 |