![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 25.06.2010
Сообщений: 31
|
![]()
Всем добрый день! Очень нужна ваша помощь.
Есть книга excel, которая содержит данные о коммунальных платежах. Выглядит это все следующим образом: Столбец H: Строка 2131: текст Строка 2132: текст Строка 2133: текст Строка 2133: ММП: МОСКВА 4 Строка 2138: текст Строка 2139: ММП: МОСКВА 5 Строка 2140: текст Строка 2141: текст и т.д. Так вот нужно осуществить поиск по столбцу H и найти ячейки со значениями МОСКВА 1-7 и МОСКВА 9, чтобы потом в зависимости от этого номера копировать весь диапазон на лист с соответствующим номером. Программа выдает ошибку в строке: For mmp= 1 to 9 If mmp=9 then mmp=9 ... If Range("H" & startrow + first - step).Find(What:="МОСКВА "&mmp) = True Then .... End if Next mmp Понимаю, что написано неправильно, но исправить самой не получается. mmp- это как раз номер после МОСКВА, от 1-7 или 9 Помогите, пожалуйста! Заранее спасибо. Если непонятно объяснила, прилагаю архив с макросом. Последний раз редактировалось Milo4ka_Lucy; 25.06.2010 в 22:04. Причина: не дописала строку If mmp=9 then mmp=9 |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
![]()
Как сказал один человек:"Мы пойдем другим путем"
Вариант рабочий,но мне не совсем нравится
Анализ,обработка данных Недорого
|
![]() |
![]() |
![]() |
#3 |
Участник клуба
Регистрация: 10.08.2009
Сообщений: 1,796
|
![]()
Здравствуйте Milo4ka_Lucy.
Мнение : я не уверен, что Вы пошли по правильному пути. Если выполняемая задача законна, у Вас есть текстовый файл со сформированным отчетом и Вы знаете где он фомируется, гораздо проще взять исходные данные и работать с ними. Теребите руководство, ведь наверняка с "поставщиком" отчетов можна договориться о "поставке" исходных данных. Я считаю, любые табличные данные объемом более 100 записей (строк) "достойны" обработки в СУБД, скорость и качество обработки не идет в сравнение с электронными таблицами. Евгений. |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 25.06.2010
Сообщений: 31
|
![]()
doober, cпасибо очень и очень большое.
В коде еще не разбиралась, лишь мельком глянула. Запустила, работает хорошо. Всё, где я запуталась, решено и даже более того. Думаю, начальство будет довольно, и это главное. =) |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 25.06.2010
Сообщений: 31
|
![]()
Евгений, теребить так называемых "поставщиков" и руководство нет никакой возможности, так что делаю, как сказано. А задача конечно же законна.=)
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 25.06.2010
Сообщений: 31
|
![]()
Возник вопрос: как переделать программу, если выписки по платежам не всегда содержат 6 строк?
Код:
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
![]()
Текстового файла уже нет ,по памяти поясню .я обычно все удаляю.Почему -6 +6
просматривается диапазон 13 строк в центре строка МОСКВА номер От найденного вхождения в строку МОСКВА номер к диапазону данных по счету можно привязаться к строкам ---------------- Визуально определил,что гарантировано на 6 позиций вверх может быть только одна строка ---------------- , обозначающая раздел счетов,то есть начало этого счета. Точно такая же картина и вниз.По другому не смог выделить диапазон конкретного счета.Количество записей разное. Выложите разновидности ваших счетов.Возможно и решение найдется
Анализ,обработка данных Недорого
Последний раз редактировалось doober; 14.07.2010 в 15:14. |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 25.06.2010
Сообщений: 31
|
![]()
Прикладываю файлик. Обратите внимание на строку 498 (уже в книге excel). Программа не включает данную выписку (89). Видимо диапазона в 13 строк здесь недостаточно. Как я уже говорила, пробовала увеличить диапазон поиска, но тогда прога неправильно понимает, какой диапазон копировать, и сортировки ноль.
Хотя есть у меня вторая версия: что по данной выписке просто не найдена ячейка с текстом "МОСКВА 5", но я пока не поняла из-за чего это может быть. Последний раз редактировалось Milo4ka_Lucy; 14.07.2010 в 17:38. |
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
![]()
заменил алгоритм определения диапазона.Смотрит вверх на 12 позиций,пока не найдет.проверил,счет появился
Анализ,обработка данных Недорого
|
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 25.06.2010
Сообщений: 31
|
![]()
У меня он также появлялся. Проблема-то вся, что появляется неполностью, да еще и путается со следующим счетом. Никак этот диапазон ВЕСЬ вместе с пустыми строками и т.п. скопировать не удается. =((
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Excel - перенос данных в ячейках | beerbitch | Microsoft Office Excel | 15 | 12.03.2010 17:33 |
Поиск текста по маске | WinApi | Помощь студентам | 6 | 27.12.2009 01:17 |
Поиск папки по маске | ForzaJuve | Общие вопросы Delphi | 9 | 20.06.2009 23:50 |
Поиск По маске | CoreFox | Общие вопросы Delphi | 11 | 21.02.2008 21:48 |