v7: 7.7 + поиск и замена значений в Excel #559323


#0 by Масянька
День добрый! Есть exl-файл с кодами и наименованиям номенклатуры. Нужно найти в файле код - поменять его на новый. То же нужно сделать и с наименованием. Код в 1 столбце, номенклатура - во 2. Проблема: есть одинаковые коды в файле (соответственно, и наименованиями). Так вот: коды меняет, а наименования меняет только первый (2 одинаковых кода - меняет на новый, а наименование - только первое). Может кто-нибудь что-нибудь подскажет? Спасибо.
#1 by Масянька
Я разочек апну... Что никто не заморачивался подобным?
#2 by fedoss
А он в Исключение вываливается, если не находит? Если так: Если не вываливается в Исключение, как-то проверять мПоискКод <> Nothing после поиска
#3 by Масянька
Вообще крутится на первой строчке.
#4 by Масянька
А как можно проверить мПоиск?
#5 by fedoss
если Find не находит, он возвращает Экселевский Nothing. Посмотри отладчиком, может оно через ОЛЕ числом возвращается.
#6 by Масянька
После Find вставила сообщалку - 2 одинаковых кода, а сообщение выводится 1 раз.
#7 by miki
ты вариант с find/findnext не захотела пробовать? Т.е. менять не сразу на всём листе, а по одному.
#8 by Масянька
Я попробовала через перебор строк - легче утопиться - работает 40-45 минут.
#9 by Масянька
Да и по всему листу с Find все так же. PS Мозг уже закипел...
#10 by Масянька
А адрес выводит тоже первой найденной...
#11 by miki
я ж тебе приводил аналогию с выделенным столбцом и вводом значеия в прошлой ветке... Может Replace куа-то возвращает адреса найденных значений?..
#12 by Масянька
Я Replace пока убрала. Код - выше. Сейчас голову морочу, как поймать одинаковые значения. А нет где-нибудь help'а, как Find работает? Погуглила - только параметры расписаны.
#13 by miki
" Finds specific information in a range, and returns a Range object that represents the first cell where that information is found. Returns Nothing if no match is found. Doesn't affect the selection or the active cell. "
#14 by miki
" FindNext Method Continues a search that was begun with the Find method. Finds the next cell that matches those same conditions and returns a Range object that represents that cell. Doesn't affect the selection or the active cell. "
#15 by Масянька
А по-русски? Читаю и превожу со словарем :)
#16 by Mikeware
и в забанили?
#17 by miki
translate.ru :))
#18 by AnyBody
У меня правда не замена, а удаление найденого, но работает так:
#19 by AnyBody
Криво скопировалось. Еще раз:
#20 by Масянька
Да пошутила я :) Написато (в переводе) : "...Не затрагивает выбор или активную клетку" Я вставила сообщалки - после ПолучитьЭлемент, Find и Исключение. Вот что вырисовывается: код - взяли из справочника . нашли в файле - 23 адрес $А$12 код - взяли из справочника следующий - 24. не нашли - 23 адрес $А$12 код - взяли из справочника следующий - 25. не нашли - 25 адрес $А$14 То бишь 13 не выводит...
#21 by Масянька
Спасибо всем. Завтра буду пробовать :) Пойду мозг остужать :(
#22 by Масянька
Забыла - а что такое -4123?
#23 by Масянька
Продожаю кипятить мозг. Процедура Перенумерция(КорректируемФайл) Вроде работает, но... В файле есть одинаковые коды (от 2 до 4 повторений). Количество строк в файле - 331. Замена в файле происходит нормально до 181 строки. Потом (в 182 строке) такой же код, но не изменяется. И далее (со 182 строки) такая же фигня. Может в Excel есть какое-то ограничение, о котором я не знаю? Или может в коде где накосячила? Но тогда странно, до 182 строки изменяет и 2 повторения, и 3, и 4. Короче, если кто может - помогите. Спасибо.
#24 by miki
потому что GoTo :)) мПоследняяСтрока нормально присваивается? Ещё раз: почему не юзаешь FindNext?
#25 by Масянька
Какая разница между Find и FindNext? Говорю же, до 182 строки - работает шикарно (2, 3, 4 одинаковых кода). А потом - меняет только в первой строке, а во второй и третьей остаются старые коды.
#26 by miki
проверил на файле из 700 строк. Меняет везде. И до 182 и после. Может xls выложешь посмотреть?
#27 by Масянька
А как выложить?
#28 by Масянька
#29 by miki
подтверждаю глюк. На файлике, который я проверял - просто одинаковые значения раскиданные вдоль столбца, а не вподряд, как у тебя. И не было автофильтров. Ладно, попробую разобраться... позже.
#30 by Масянька
Буду ждать... Спасибо.
#31 by fedoss
Поменяй Код, конечно кривоват, но работает :)
#32 by Масянька
Спасибо, попробую. Так поправь код - буду признательна. Критику по делу всегда рада выслушать :)
#33 by fedoss
Можно все написать гораздо проще, много лишнего :) Ранее правильно рекомендовали FindNext, с ним получается примерно так:
#34 by Масянька
Огромное спасибо! Буду пробовать :)))
#35 by fedoss
нп. Но твой код тоже работает, только поменять 2 строчки
#36 by Масянька
Мальчики! Огромнейшее спасибо! Все работает и и . СПАСИБО!!! :)))))
#37 by Масянька
Пардон, слегка обшиблась - женщина же :) не арбайтен. А то, что надо. Но, все равно, спасибо :))))))))))
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С