|
12 / 12 / 4
Регистрация: 16.03.2012
Сообщений: 252
|
||||||
Макрос поиска и вывода строк, содержащих значение поиска16.03.2012, 11:24. Показов 65051. Ответов 101
Метки нет (Все метки)
Здравствуйте!
Есть макрос для поиска значения из ячейки А1 по всему листу и копированием строк из всех листов, содержащих это значение. Но есть и проблема: макрос поиска ищет только цифровые значения из указанной ячейки. Текстовые или смешанные не находит. Если знаете как подправить, помогите плз!!! Вот код:
0
|
||||||
| 16.03.2012, 11:24 | |
|
Ответы с готовыми решениями:
101
Макрос поиска вводимого значение и вывода всей строки разработать консольное приложение для ввода с клавиатуры массива строк и поиска среди них строк, содержащих заданный строковый фрагмент. Вывод количества строк в файлах, содержащих заданные строки поиска |
|
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
|
|
| 04.09.2013, 13:50 | |
|
Вызывает сомнение необходимость такой процедуры вообще.
Т.е. у Вас нет единой базы, Вам не нужна лёгкая возможность сделать сводку/подсчёт/выборку по данным? Любите сложности? Почему бы не оставлять всё как есть/заводится на одном листе, а если нужен POLZUNOV - ставим фильтр по *POLZUNOV*. Можно откинуть лишнее фильтром по дате или ещё по какому параметру. Можно отобрать только нужное макросом с использованием того же фильтра или SQL. Когда нужно например распечатать что-то по конкретному пароходу по ситуации на конкретный период.
0
|
|
|
0 / 0 / 0
Регистрация: 04.09.2013
Сообщений: 12
|
|
| 04.09.2013, 14:32 | |
|
Все не так. Есть файл, в который заносятся прибывающие на стоянку автомобили. У них есть свои атрибуты, которые заполняются по мере некоторых событий. Самое последнее событие - отправка, а до нее происходит распределение, опять же в зависимости от неких условий, на каком из судов поедет этот авто. Как правило составление списка происходит примерно на 2-3 парохода сразу. Сам файл постоянно пополняется новыми записями
и ориентироваться в какой-то момент сложно. Поэтому, я подумал, что после определения на каком судне пойдет авто, можно переносить эти строки по своим листам-пароходам. Тем самым уменьшаем от лишнего основной лист, а так же формируем список на суда. Фильтр в данном случае не совсем удобен. Всего не расскажешь. Но идея и заключается в том, чтобы облегчить этот труд. Расставил названия судов, нажал на капу и все разлетелось по местам. Более того, с этим файлом работают иностранцы, собственно от них это и идет, но оперативность оставляет желать лучшего. Особенно после отгрузки. Еще несколько дней на первом листе маячат уже отправленные авто. Нет, я не люблю сложности. Избавляюсь.
0
|
|
|
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
|
|
| 04.09.2013, 14:40 | |
|
Ну не знаю, какие проблемы...
Есть список машин - условно есть столбцы машина, дата и судно. В любой момент фильтром или запросом отбираем в любом разрезе - "сегодня на судне", "сегодня нераспределённые", "всего на судне за неделю", "конретная машина за год была на судах" и т.д.... Я бы вообще заносимл всё в Access стандартно через формы, вывод отчётов стандартно репортами. Но конечно нужно посидеть сделать. За зарплату, вероятно не нищенскую
0
|
|
|
0 / 0 / 0
Регистрация: 04.09.2013
Сообщений: 12
|
|
| 04.09.2013, 14:54 | |
|
Hugo121, да я бы тоже не против, но партнеры не идут на такие новшества. Привыкли и ни туда, ни сюда.
Это реалии. А ваши рассуждения весьма далеки от того, что и как происходит. Это не статистический файл, это движение. И он регулярно пополняется и после отгрузки очищается, им это удобно, а мы зависим от этого. Вот и пытаюсь хотя бы что-то получше сделать, без серьезных потрясений. З/п... маленькая з/п
0
|
|
|
0 / 0 / 0
Регистрация: 04.09.2013
Сообщений: 12
|
|
| 05.09.2013, 08:49 | |
|
Привет всем. В общем попробовал предложенный вариант. Не стал долго разбираться, что-то там не работает, может я чего не заменил, не знаю. Но то что делается до ошибки не совсем то. Переносит на вкладки все подряд, не разделяя на названия. Я выкладываю весь файл, обрезанный и вычищенный от лишних листов, они там не важны. А то под 4 мегабайта файл, много мне кажется для проверки. Так вот. Там есть и предложенный вариант обработки и мой. Там кнопки и одна подписана как "мой". Для проверки работы я сделал всего две вкладки. Оставил два названия. Сути не меняет, 2 их или 7. В общем, после работы моего макроса, придется заново присваивать названия в поле "Q", ибо у меня работает и с первого листа убирает ненужные строки.
Конечно, я использовал чьи-то наработки, подглядывал, но и сам тоже немного поучавствовал, кривой макрос, но работает как и задумал. Осталось только проверку сделать на фрагмент, типа, в ячейке стоит IVAN POLZUNOV 12/12/12, а искать и отбирать просто по POLZUNOV. В общем смотрите, поправьте, вносите если есть желание. улучшения. Заранее благодарен.
0
|
|
|
6082 / 1327 / 195
Регистрация: 12.12.2012
Сообщений: 1,023
|
|
| 05.09.2013, 10:52 | |
|
Здравствуйте, borman13,
Мой макрос работает только в том случае, если заголовки столбцов одинаковы во всех таблицах. У вас же заголовок "Code" есть только в первой таблице. В общем, делать макрос без образца - неблагодарное дело .С уважением, Aksima
0
|
|
|
0 / 0 / 0
Регистрация: 04.09.2013
Сообщений: 12
|
|
| 05.09.2013, 13:05 | |
|
Извините, Aksima, я видимо это не учел. Обязательно попробую завтра. Сейчас вот еще озадачился
поиск найти по всей книге с фокусировкой на ячейке и подсвечиванием.. Ни у кого не завалялся. Нашел несколько видов, но в каждом есть что-то не то. Хотелось бы минимум ручной работы, чтобы листы перескакивали автоматом...
0
|
|
|
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
|
|
| 05.09.2013, 14:37 | |
|
Т.е. сперва создаём трудности, затем преодолеваем?
0
|
|
|
0 / 0 / 0
Регистрация: 04.09.2013
Сообщений: 12
|
||||||
| 06.09.2013, 09:44 | ||||||
|
Hugo121, почему бы и нет. Все есть опыт. И это лучше, чем ничего не делать. Вот появилось у меня желание что-то подобное сделать, пришлось и моск напрячь и движуху устроить...
![]() Добавлено через 19 часов 2 минуты В общем доделал свой вариант, может кому интересно будет и нужно... Что делает, распределяет строки по листам, названия которых, находятся в ячейках столбца Q. На листах записи добавляются, с первого листа удаляются. На первом листе остаются строки не попадающие на свои листы по причине неопределенности.
0
|
||||||
|
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
|
||||||
| 06.09.2013, 12:52 | ||||||
|
Хорошо.
Тогда такой вариант - из Вашего кода взял одну строку и принцип Union для удаления всего за раз. Листы как и у Вас уже должны быть, хотя конечно можно и добавить их генерацию кодом. Если строк по кораблю на перенос будет очень много (будет превышена длина строки в .Item(k) и соотв. диапазон не определится), то код нужно менять. Например или делить эту строку на части и копировать/запоминать частями, или собирать номера строк в коллекцию и затем копировать по одной, как у Вас. И соответственно сразу аналогично собирать union удаляемых строк. Зато быстро - Ваш вариант у меня вообще всё подвесил и не заработал без коррекций, а мой живенько всё перенёс. Но файл вообще глючный - хоть я его и почистил от лишних строк, он всё равно ведёт себя странно.
0
|
||||||
|
0 / 0 / 0
Регистрация: 04.09.2013
Сообщений: 12
|
|
| 06.09.2013, 16:41 | |
|
Hugo121, спасибо Вам огромное, в понедельник все проверю. Конечно, будет лучше, воспользуюсь Вашим вариантом.
По файлу... Эх-хе-хе.. .все очень трудно, это долго объяснять, но проблема в наших зарубежных друзьях, которые лет 10 гоняют этот файл, а есть еще один... там вашпе -полный алес, они из файла берут наши изменения и копируют их в свой такой же... А потом опять его нам присылают... И не соглашаются ни на что, только так... Ладно, хватит о работе, удачных Вам выходных. Спасибо еще раз.
0
|
|
|
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
|
|
| 06.09.2013, 17:16 | |
|
Вероятно потому он такой глючный...
Вам нужно поймать момент когда там данных мало и скопировать ТОЛЬКО НУЖНЫЕ ДАННЫЕ и ФОРМАТ ячеек (чтоб шрифт не потерять) в новый чистый файл, а этот убить. Ну или хотя бы скопировать только нужные строки - я так сделал, Ваш приложенный файл похудел до 33кб. Там вероятно за годы накопилось столько всякого мусора... ScriptEditor вообще завешивает машину, не может открыть этот файл.
1
|
|
|
0 / 0 / 0
Регистрация: 04.09.2013
Сообщений: 12
|
|
| 09.09.2013, 10:11 | |
|
Hugo121, ну да, выдает ошибку 1004... А вообще, у меня вопрос, как вычистить файл от всякой ненужной дряни? Даже при том, что у меня по 500 строк и 5 листов, ну не должен он весить 4 метра... Что-то не то...
0
|
|
|
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
|
|
| 09.09.2013, 10:43 | |
|
Я же уже написал.
Лучший способ - скопировать только нужные данные в новый чистый файл. Немного лишнего веса я убрал удалив полностью все строки под данными - там были местами форматированные ячейки, их можно найти через Ctrl+End. Нашёл что мешало отрыть в ScriptEditor'е - там было 3 Custom Views (не знаю как это на русском, никогда не пользовался). Удалил - тоже файл стал чуть полегче.
0
|
|
|
0 / 0 / 0
Регистрация: 04.09.2013
Сообщений: 12
|
|
| 09.09.2013, 12:27 | |
|
Hugo121, спасибо, поковыряюсь.. Не могу скопировать, поскольку есть листы с чисто японскими делами, надо какую-нить катану сначала поставить, а то не нюхает иностранные слова. Англицкий еще куда ни шло.
А если можно, подскажите, что там в коде поправить, чтобы Ваш вариант заработал?
0
|
|
|
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
|
|
| 09.09.2013, 12:42 | |
|
Мой вариант на примере работает.
Что там иначе в рабочем файле - отсюда не видно. Может быть [a1].CurrentRegion без данных?
0
|
|
|
0 / 0 / 0
Регистрация: 04.09.2013
Сообщений: 12
|
|
| 09.09.2013, 13:02 | |
|
У меня файл полный, все вкладки по именам+ японские, но я их в массивах не перечислял..
Дома нет файла.. На работе посмотрю. [a1].CurrentRegion .. .я вообще для определения заполненности строк использую колонку D, поскольку это номер кузова и он всегда есть. Это самое стабильно-заполненное поле. Грубо говоря, по нему я и ориентировался у себя в макросе.
0
|
|
|
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
|
||||||
| 09.09.2013, 13:16 | ||||||
|
Можно так изменить:
0
|
||||||
|
0 / 0 / 0
Регистрация: 04.09.2013
Сообщений: 12
|
|
| 09.09.2013, 13:34 | |
|
Hugo121, нет как раз-таки, ибо 17 колонка может иметь сколь угодно пустых ячеек, и не факт, что последняя существующая заполненной строка будет иметь не пустое значение 17 столбца... А вот колонка D, среди всех интересующих в данном деле вкладок, показательна и информативна на предмет количества заполненных строк.
0
|
|
|
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
|
|
| 09.09.2013, 13:59 | |
|
Да, но Вам ведь не нужны все заполненные строки - интересны только те из 17 столбца, где указано судно.
0
|
|
| 09.09.2013, 13:59 | |
|
Макрос для поиска заполненных строк в таблице и переноса их в другую книгу Запрет вывода строк содержащих значение #Ошибка Как составить рег.выражение для поиска строк, содержащих только буквы, цифры, точки, и подчеркивания Как доработать макрос для копирования строк из файлов, содержащих определенное значение Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|