Страницы: 1
RSS
Не работает Макрос после обновления системы, подсказать где в объекте ошибка
 
Коллеги всем привет.
Подскажите пжл , в ночь обновилась версия 1С и у меня поплыл макрос на обработку файла(я это предвидел но надеялся на лучшее) , цикл я проверил работает корректно, но вот ошибка в объекте Range("L" & first_row & ":Y" & cur_row).Select  подскажите пжл, что может быть не так откуда ноги?
Файл макроса прикладываю. Первый Файл - process_file_from_1C сам макрос. второй файл OpenOrders_Replanishment сама выгрузка файла из 1С. Третий этот файл создаётся в макросе и далее туда копируется вся инфа OpenOrdes/
 
Добрый день. А что при пошаговом выполнении макроса содержится в переменных first_row и cur_row в момент появления ошибки?
Кому решение нужно - тот пример и рисует.
 
Я так же этого не понял что содержится, при пошаговом выполняю когда он просто тупо по циклу бегает минуты три и всё, и далее когда уже завершаю он ошибку выдаёт, честно сам не понял что тут и как.  
 
Цитата
Александр L написал:
Я так же этого не понял что содержится
Так посмотрите.
 
Юрий знаете как бывает, когда от предыдущих коллег спустя пару лет достаются файл(тебе никто ничего не сказал про них как работают и так далее) , смотришь всё работает корректно не погружаешься, но когда вот что то меняется то приходит настигнутая беда, самому не получилось разобраться обратился сюда.
 
Вы не поняли ))
Цитата
Пытливый написал:
что при пошаговом выполнении макроса содержится в переменных
Пошаговый просмотр - это по кнопке F8 в редакторе.
 
Ну вы, когда пошагово выполняете, и выделена строка, на которой ошибка - посмотрите в редакторе в окошко Locals - какие значения там в этих переменных? Или наведите курсор на переменные в коде - там всплывающее окно.
Окошко Locals включается в п.меню View, если что.
Кому решение нужно - тот пример и рисует.
 
Про F8 знаю, спасибо за совет.
При выполнение я если правильно понимаю пишет Ln 86, Col 1
 
Нет - это номер строки и позиция курсора в строке. Наведите мышку на переменную.
 
first_row=0
cur_row=2093
 
Цитата
Александр L написал:
first_row=0
Вооот. А номер строки не может быть меньше единицы )
P.S. Файлы я не смотрел.
 
Но ноль прописан в макросе , но далее там идёт если first_row = 0  то first_row = cur_row  но в свою очередь cur_row = 1 выше это присвоено.
 
У вас нет 8 уровня
измените уровень 7 как сейчас 8, а 8 удалите
     
Код
   If Range("B" & cur_row).IndentLevel = 7 Then
            cur_material_code = Range("B" & cur_row).Value
        End If
  
        If Range("B" & cur_row).IndentLevel = 8 Then
            If first_row = 0 Then
              first_row = cur_row
            End If
 
У вас условие приравнивания first_row = cur_row сработает только тогда, когда IndentLevel в текущей строке будет 8. А если он будет 9, 7, 6, и т.д. - нет. И first_row будет 0, что приведет к ошибке.
Кому решение нужно - тот пример и рисует.
 
да структура выгрузки поменялась , это я увидел, и просмотрел старую выгрузку и новую и отличия пошли конечно(((
Страницы: 1
Наверх