Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.06.2010, 12:12   #1
Milo4ka_Lucy
Пользователь
 
Регистрация: 25.06.2010
Сообщений: 31
По умолчанию Поиск по маске данных в ячейках Excel

Всем добрый день! Очень нужна ваша помощь.
Есть книга 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
Milo4ka_Lucy вне форума Ответить с цитированием
Старый 25.06.2010, 17:16   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Как сказал один человек:"Мы пойдем другим путем"
Вариант рабочий,но мне не совсем нравится
Вложения
Тип файла: rar 21.rar (15.5 Кб, 62 просмотров)
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 25.06.2010, 19:55   #3
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте Milo4ka_Lucy.
Мнение : я не уверен, что Вы пошли по правильному пути. Если выполняемая задача законна, у Вас есть текстовый файл со сформированным отчетом и Вы знаете где он фомируется, гораздо проще взять исходные данные и работать с ними. Теребите руководство, ведь наверняка с "поставщиком" отчетов можна договориться о "поставке" исходных данных.
Я считаю, любые табличные данные объемом более 100 записей (строк) "достойны" обработки в СУБД, скорость и качество обработки не идет в сравнение с электронными таблицами.
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 25.06.2010, 22:02   #4
Milo4ka_Lucy
Пользователь
 
Регистрация: 25.06.2010
Сообщений: 31
По умолчанию

doober, cпасибо очень и очень большое.
В коде еще не разбиралась, лишь мельком глянула. Запустила, работает хорошо. Всё, где я запуталась, решено и даже более того.
Думаю, начальство будет довольно, и это главное. =)
Milo4ka_Lucy вне форума Ответить с цитированием
Старый 25.06.2010, 22:09   #5
Milo4ka_Lucy
Пользователь
 
Регистрация: 25.06.2010
Сообщений: 31
По умолчанию

Евгений, теребить так называемых "поставщиков" и руководство нет никакой возможности, так что делаю, как сказано. А задача конечно же законна.=)
Milo4ka_Lucy вне форума Ответить с цитированием
Старый 14.07.2010, 14:40   #6
Milo4ka_Lucy
Пользователь
 
Регистрация: 25.06.2010
Сообщений: 31
Вопрос Вопрос

Возник вопрос: как переделать программу, если выписки по платежам не всегда содержат 6 строк?
Код:
For j = m - 6 To m + 6
  If InStr(1, RRZ(j, 1), "----------------", vbTextCompare) > 0 And Fl = False Then
   Nah = j
   rr(0) = j + 1
   Fl = True
  End If
  
    If InStr(1, RRZ(j, 1), "----------------", vbTextCompare) > 0 And Nah < j Then
    rr(1) = j - 1
    poisk = rr
   
     Exit Function
  End If
  Next
Выписка по платежу может содержать любое количество строк. Пыталась просто в цикле вместо m - 6 To m + 6 исправить скажем на m - 10 To m + 10, программа, естественно, работает уже некорректно. Видимо я не до конца поняла логику кода. Помогите еще раз, пожалуйста. Спасибо!
Milo4ka_Lucy вне форума Ответить с цитированием
Старый 14.07.2010, 15:12   #7
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Текстового файла уже нет ,по памяти поясню .я обычно все удаляю.Почему -6 +6

просматривается диапазон 13 строк в центре строка МОСКВА номер
От найденного вхождения в строку МОСКВА номер к диапазону данных по счету можно привязаться к строкам
----------------
Визуально определил,что гарантировано на 6 позиций вверх может быть только одна строка
---------------- ,
обозначающая раздел счетов,то есть начало этого счета.
Точно такая же картина и вниз.По другому не смог выделить диапазон конкретного счета.Количество записей разное.
Выложите разновидности ваших счетов.Возможно и решение найдется
Анализ,обработка данных Недорого

Последний раз редактировалось doober; 14.07.2010 в 15:14.
doober вне форума Ответить с цитированием
Старый 14.07.2010, 15:47   #8
Milo4ka_Lucy
Пользователь
 
Регистрация: 25.06.2010
Сообщений: 31
По умолчанию Файл

Прикладываю файлик. Обратите внимание на строку 498 (уже в книге excel). Программа не включает данную выписку (89). Видимо диапазона в 13 строк здесь недостаточно. Как я уже говорила, пробовала увеличить диапазон поиска, но тогда прога неправильно понимает, какой диапазон копировать, и сортировки ноль.
Хотя есть у меня вторая версия: что по данной выписке просто не найдена ячейка с текстом "МОСКВА 5", но я пока не поняла из-за чего это может быть.

Последний раз редактировалось Milo4ka_Lucy; 14.07.2010 в 17:38.
Milo4ka_Lucy вне форума Ответить с цитированием
Старый 14.07.2010, 16:21   #9
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

заменил алгоритм определения диапазона.Смотрит вверх на 12 позиций,пока не найдет.проверил,счет появился
Вложения
Тип файла: rar sort.rar (20.8 Кб, 22 просмотров)
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 14.07.2010, 16:27   #10
Milo4ka_Lucy
Пользователь
 
Регистрация: 25.06.2010
Сообщений: 31
По умолчанию

У меня он также появлялся. Проблема-то вся, что появляется неполностью, да еще и путается со следующим счетом. Никак этот диапазон ВЕСЬ вместе с пустыми строками и т.п. скопировать не удается. =((
Milo4ka_Lucy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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