При работе макроса самопроизвольно закрывается книга - VB

Узнай цену своей работы

Формулировка задачи:

Дорогие, буду вам очень признателен за помощь в следующем деле - я написал макрос, который по сути формирует из определенного массива данных из разных книг одну таблицу по определенному шаблону. Есть совершенно непонятная проблема - при перегоне содержимого ячеек из одной книги в другую первая книга может в определенный момент выполнения макроса самопроизвольно закрыться - что естественно ведет к сбою и неуспешному завершению работы макроса. Возможно я не корректно как-то сделал конструкцию услувного оператора. это конструкция, предполагает что при условии если такая-то ячейка в заданном столбце пуста - перейти на следующую иттерацию цикла (фрагмент кода начиная с If NNsumm <> Empty Then). Если убрать это условие - макрос нормально работает, но при включении этого условия - на определенной странице происходит закрытие книги - источника, и далее идет сбой. Честно говоря вообще не могу понять что в принципе может вызвать закрытие книги, учитывая что в макросе я ее закрытие нигде не прописываю
Заранее спасибо

Решение задачи: «При работе макроса самопроизвольно закрывается книга»

textual
Листинг программы
Workbooks(book_name_source).Activate
    <font color="blue">With</font> Workbooks(book_name2).Sheets(<font color="teal">"Покупатели"</font>)
        last_data_cell = .Range(<font color="teal">"B"</font> & Rows.Count).<font color="blue">End</font>(xlUp).Row
        j = <font color="darkblue"><b>0</b></font>
        <font color="blue">For</font> iii = <font color="darkblue"><b>3</b></font> <font color="blue">To</font> last_data_report_counter
            j = last_data_cell + iii
            NNnumber = Range(<font color="teal">"A"</font> & iii)
            NNdate = date_correction(Range(<font color="teal">"B"</font> & iii), Path, sheet_name)
            NNsumm = Range(<font color="teal">"C"</font> & iii).Value
            NNsumm = Trim(NNsumm)
            <font color="blue">If</font> Len(NNsumm) <font color="blue">Then</font>
                .Range(<font color="teal">"B"</font> & j & <font color="teal">":G"</font> & j) = Array(firm_name, instument, NNnumber, NNdate, NNsumm, INN)
                .Range(<font color="teal">"H"</font> & j).Formula = <font color="teal">"=HYPERLINK("</font><font color="teal">"["</font> & Path & <font color="teal">"]"</font> & <font color="teal">"'"</font> & sheet_name & <font color="teal">"'!A1"</font><font color="teal">")"</font>
            <font color="blue">End</font> <font color="blue">If</font>
        <font color="blue">Next</font> iii
    <font color="blue">End</font> <font color="blue">With</font>

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.286 из 5
Похожие ответы