12 / 12 / 4
Регистрация: 16.03.2012
Сообщений: 252
|
||||||
1 | ||||||
Макрос поиска и вывода строк, содержащих значение поиска16.03.2012, 11:24. Показов 61316. Ответов 101
Метки нет (Все метки)
Здравствуйте!
Есть макрос для поиска значения из ячейки А1 по всему листу и копированием строк из всех листов, содержащих это значение. Но есть и проблема: макрос поиска ищет только цифровые значения из указанной ячейки. Текстовые или смешанные не находит. Если знаете как подправить, помогите плз!!! Вот код:
0
|
16.03.2012, 11:24 | |
Ответы с готовыми решениями:
101
Макрос поиска вводимого значение и вывода всей строки разработать консольное приложение для ввода с клавиатуры массива строк и поиска среди них строк, содержащих заданный строковый фрагмент. Вывод количества строк в файлах, содержащих заданные строки поиска Макрос поиска и копирования строк, которые совпадают с искомым значением |
0 / 0 / 0
Регистрация: 12.09.2013
Сообщений: 4
|
|
12.09.2013, 18:32 | 61 |
добрый день ! прошу помощи. очень нужен подобный макрос поиска только попроще , прочитал всю тему но собрать не могу (((( помогите пожалуйста!
есть первый лист в книге на нем колонка со значениями нужно каждое значение поискать во всех листах этой же книге и если значение есть то его удалить из первого листа если нет тогда оставить и искать следующее значение . в итоге должны остаться на первом листе только уникальные значения которых нет на остальных листах книги . заранее огромное спасибо за помощь
0
|
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
|
|
12.09.2013, 19:58 | 62 |
"поискать во всех листах этой же книге" и по всему листу? Или всёж не по всему, а только по одному столбцу?
0
|
0 / 0 / 0
Регистрация: 12.09.2013
Сообщений: 4
|
|
13.09.2013, 00:41 | 63 |
Нужное значение с первого листа поискать по всем остальным листам этой же книги
0
|
Заблокирован
|
||||||
13.09.2013, 07:49 | 64 | |||||
Мало конкретики, поэтому вместо некой колонки использовал текущее выделение -
0
|
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
|
|
13.09.2013, 09:43 | 65 |
Допустим на самом деле файл такой - стандартно 3 листа, на первом список для удаления 10000 строк, на двух других в определённом столбце по 10 значений, слитно с A1 вниз.
Будем использовать макрос уважаемого Апострофф'а? Ну можно конечно...
0
|
0 / 0 / 0
Регистрация: 12.09.2013
Сообщений: 4
|
|
13.09.2013, 21:30 | 67 |
спасибо огромное !
Иногда макрос выдает ошибку ( ругается на end if) и приходится нажимать на "continue". причину ошибки я не понял ( я немного изменил действие и убрал удаление данных из ячейки и просто копирую в ячейку справа. так же добавил менно перебор по всем ячейкам (здесь тоже подскажите пожалуйста может как то можно оптимизировать ?) . и все таки как удалять именно строку полностью если есть такая же запись на любом другом листе? пример файла прикрепил чтобы было более наглядно. макрос уже в нем . у файла на самом деле расширение *.xslm но загрузить такой на форму не получается ( поэтому я его упаковал в архив или если просто скачать прикрепленный эксель файл то нужно поменять расширение с xslx на xslm
0
|
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
|
||||||
14.09.2013, 02:03 | 68 | |||||
Сколько обычно данных? Судя по примеру - больше похоже на то, что я в Макрос поиска и вывода строк, содержащих значение поиска
описал... На таких данных я бы сперва собрал со всех листов данные в словарь, затем быстренько пробежался по данным первого листа - а там уже смотря что нужно по задаче: удалять одним способом, ставить метки другим, красить третьим... Только я не понял - зачем нужно было портить красивый код? Ну изменили бы Selection на [a1].currentregion и всё. А нет - ещё для ускорения область поиска можно было ограничить вторым столбцом usedrange. Например вот под пример - где-то в 30-40 раз быстрее так метки ставить:
1
|
0 / 0 / 0
Регистрация: 12.09.2013
Сообщений: 4
|
|
16.09.2013, 14:48 | 69 |
Hugo121
спасибо огромное работает на ура без ошибок и за долю секунды !!!!! если Вам не сложно можете прокомментировать каждую строчку макроса , мне очень интересно разобраться где что делается ! можно в личку чтоб не плодить тему ! еще раз огромнейшее Вам спасибо!!!
0
|
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
|
||||||
16.09.2013, 16:21 | 70 | |||||
В личку нельзя.
Чуть позже сделаю. Добавлено через 31 минуту Изменил пару букв - этот вариант надёжнее.
Этот вариант будет быстрым тогда, когда на проверяемом листе данных много, на остальных мало. Если наоборот - тогда быстрее будет вариант Апострофф'a.
1
|
alexsisvl
|
|
24.09.2013, 14:01 | 71 |
Добрый день уважаемые форумчане, нужна ваша помощь. Есть лист на котором в первом столбце перечислены номера изделий в последующих столбцах параметры данных изделий, номер изделия может повторятся несколько раз так как параметры фиксируются многократно.
Задача подсчитать средние значения каждого параметра для каждого изделия. Размер массива 27000 строк на 850 столбцов. Заранее благодаре за помощь. |
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
|
|
24.09.2013, 22:04 | 72 |
Можно сделать, проверил - такой массив в память лезет
Но некогда...
1
|
12 / 12 / 4
Регистрация: 16.03.2012
Сообщений: 252
|
|||||||||||
02.12.2013, 11:03 [ТС] | 73 | ||||||||||
Здравствуйте!
столкнулся с проблемой - макрос перестал работать... Причем почему-то не работает макрос поиска по номенклатуре, а макрос поиска по сер.номерам работает также. Различий между ними нет:
и поиск по серийнику:
Почему один макрос работает, а второй нет? поиск идет по разным столбцам, количество строчек в массивах одно и тоже, количество листов - тоже одинаково. Что тут не верно? Помогите плз подправить...
0
|
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
|
|
02.12.2013, 11:31 | 74 |
Если два одинаковых кода на одинаковых диапазонах работают по разному - значит причина не в кодах, а в данных.
Другое дело что можно этот код изменить, чтоб одинаково обрабатывал любые данные. Но голой overflow маловато - нужно было бы знать где именно и на каких данных.
1
|
12 / 12 / 4
Регистрация: 16.03.2012
Сообщений: 252
|
|
02.12.2013, 12:43 [ТС] | 75 |
при "дебаге" высвечивает вот эту строчку R = Val(Sheets(iL).Cells(j, KL))
данные для поиска одинаковые: один код ищет по столбцу С, другой по столбцу Е. И так на 3х разных листах. Я попробывал удалить строки на одном из листов и макрос поиска по номенклатуре начал опять работать исправно. не справляется с объемом почему-то.. сток всего около 1000. и поиск по серийному номеру обрабатывает их идеально.
0
|
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
|
|
02.12.2013, 12:49 | 76 |
R случайно не Integer где-нибудь, а число в Sheets(iL).Cells(j, KL) не превышает ли предел?
1
|
12 / 12 / 4
Регистрация: 16.03.2012
Сообщений: 252
|
|
02.12.2013, 13:04 [ТС] | 77 |
ну судя по всему превышает... только понять не могу где именно. И почему одном макросе превышает, а в другом в все в порядке...
а почему Вы считает что в Sheets(iL).Cells(j, KL) задается предел? Это же параметры, которые дают указывают где искать: смотреть массив с 4 по 9 строчку в 31 и 32 столбцах, а именно в 31 столбце листы для поиска, в 32 - указан столбец в котором надо искать.. Причем листы задаются не числами, а названием. Или я не понял Вашего вопроса...?
0
|
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
|
|||||||||||
02.12.2013, 13:07 | 78 | ||||||||||
Если где-то R объявлена как Integer, то... вот например погоняйте:
1
|
12 / 12 / 4
Регистрация: 16.03.2012
Сообщений: 252
|
|
02.12.2013, 13:59 [ТС] | 79 |
спасибо!
заменил Val на цифры и все заработало! но...ещё один вопрос: сейчас попробывал ставить и VAL("1") и VAL("1212") - все равно ищет и выдает все значения. Т.е. от этого не зависит?
0
|
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
|
|
02.12.2013, 14:16 | 80 |
Ктож знает что Вы там ищите, и зачем вообще задаёте значение R (оно никак в этом коде ведь не используется. Может где-то позже?)...
0
|
02.12.2013, 14:16 | |
02.12.2013, 14:16 | |
Помогаю со студенческими работами здесь
80
Макрос для поиска заполненных строк в таблице и переноса их в другую книгу Запрет вывода строк содержащих значение #Ошибка Как составить рег.выражение для поиска строк, содержащих только буквы, цифры, точки, и подчеркивания Как доработать макрос для копирования строк из файлов, содержащих определенное значение Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |