Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2010 - Сложная задача по поиску и вхождению

Ответить
Настройки темы
2010 - Сложная задача по поиску и вхождению

Аватара для blackeangel

Старожил


Сообщения: 329
Благодарности: 3

Профиль | Отправить PM | Цитировать


Изменения
Автор: blackeangel
Дата: 03-04-2017
Всем добрый день. Задача сложная,но наверное интересная. В общем не знаю даже как описать то, что нужно сделать, но это делаю каждый день руками.
Прилагается пример, до и как должно быть на разных листах.
На вопросы типа выложи оригинал-отвечаю это и есть оригинал.Реальный мой рабочий файл.

Отправлено: 09:32, 15-12-2015

 

Динохромный


Contributor


Сообщения: 711
Благодарности: 321

Профиль | Отправить PM | Цитировать


Цитата blackeangel:
Поправте что не так? »
Цитата blackeangel:
не знаю даже как описать то, что нужно сделать »
Оно и есть - Вы не сформулировали задачу. Ровно отсюда и выплывают все проблемы. Да еще подтвердили, что алгоритм должен делать следующее (а он вероятно совершенно не должен это делать):
Цитата a_axe:
при условии что значение в ячейках "Наименование " также будет совпадать? »
Вот например в Вашем коде графа Наименование вообще не задействована. Сопоставлять судя по всему нужно строку "Обозначения".
Заниматься проверкой Вашего кода не имея сформулированной задачи - не самое разумное предложение.

Для начала все-таки сформулируйте задачу, что должна сделать программа, а уже потом давайте разбираться с кодом.
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:28, 16-12-2015 | #21



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для blackeangel

Старожил


Сообщения: 329
Благодарности: 3

Профиль | Отправить PM | Цитировать


Цитата a_axe:
Для начала все-таки сформулируйте задачу, что должна сделать программа, а уже потом давайте разбираться с кодом.
Специально для Вас чётко сформулированная задача: привязать все исполнения к основному,если таковое имеется без использования человека,или на крайний случай один клик(запуск макроса) в Эксель

Отправлено: 12:48, 16-12-2015 | #22


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата blackeangel:
Специально для Вас чётко сформулированная задача »
a_axe, ну, вот, теперь и Вас посчитали .

Отправлено: 14:49, 16-12-2015 | #23


Динохромный


Contributor


Сообщения: 711
Благодарности: 321

Профиль | Отправить PM | Цитировать


Цитата Iska:
ну, вот, теперь и Вас посчитали »
...справка дана иностранцу с табурэткой)

Цитата blackeangel:
Специально для Вас чётко сформулированная задача »
что все-таки должна делать программа я так и не понял, но раз Вы сами привели код, то из конструктивных предложений могу указать следующие независящие от алгоритма факты:

1. Не принципиально, но в коде фигурирует название столбца "ПредвАрхив", в примере "ПредвАрх", думаю Вы сами поправили и по факту у Вас одинаково.

2. Строчка If Cells(i, ncolumn2).Value Like Cells(i, ncolumn1).Value Then сравнивает значения ячеек столбца "Обозначение". Поскольку строки не совпадают полностью(например для указанной позиции "Провод" это будут МИЛБ.685614.503-02, МИЛБ.685614.503-03 и т.д.), условие соблюдаться не будет, пока строки не будут полностью одинаковы. Насколько я вижу, в файле таких совпадений не будет нигде.

3. В цикле у Вас идет проверка на совпадение ячеек в текущей строке столбцов "Обозначения" и "Карточки". Если не совпадают, больше никаких проверок этот участок кода не выполняет (в коде ниже - строки между двумя красными строками будут выполняться только если "Обозначения" четко равны "Карточкам".) Если условие выполняется (будем считать, что пункт 2 устранен), то идет проверка синей сточки кода. Если условие соблюдается (в коде оно подчеркнуто), то выполняется следующая строчка кода. Если не соблюдается, то выполняются дальнейшие проверки, в том числе - еще раз выполняется проверка If Cells(i + 1, ncolumn1).Value Like Cells(i, ncolumn1).Value (подчеркнуто второй раз). Это условие заведомо выполняться не будет (в коде это проверено четырьмя строчками выше, и если условие истинно, то в else мы в принципе не попадем). Вероятно, строчки End If не должны идти друг за другом.
Вообще этот блок лучше реализовать через select case.

Код: Выделить весь код
Do While Cells(i, ncolumn1).Value <> Empty

    If Cells(i, ncolumn2).Value Like Cells(i, ncolumn1).Value Then 
        If Cells(i + 1, ncolumn1).Value Like Cells(i, ncolumn1).Value Then 
             Cells(i + 1, ncolumn2).Value = Cells(i, ncolumn1).Value 
        Else
            If Cells(i, ncolumn3).Value Like Cells(i, ncolumn1).Value Then
                If Cells(i + 1, ncolumn1).Value Like Cells(i, ncolumn1).Value Then
                    Cells(i + 1, ncolumn3).Value = Cells(i, ncolumn1).Value
                End If
            End If
        End If
    End If
    i = i + 1

Последний раз редактировалось a_axe, 22-12-2015 в 13:45.


Отправлено: 12:06, 22-12-2015 | #24



Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2010 - Сложная задача по поиску и вхождению

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - Вопросы по поиску папок и файлов Vadikan Microsoft Windows 7 248 23-02-2018 22:41
Route/Bridge - Сложная задача для домашнего роутера maxsoff Сетевые технологии 1 29-01-2011 07:50
CMD/BAT - [решено] Вопрос по поиску с условием. ajakzs Скриптовые языки администрирования Windows 6 15-10-2010 16:49
Ресурс по поиску бесплатных эл. книг Ser6720 Новости информационных технологий 4 09-02-2007 08:10
Добавление в статью по поиску обновлений Gangabass Автоматическая установка Windows 2000/XP/2003 1 22-12-2006 08:54




 
Переход