Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / При работе макроса самопроизвольно закрывается книга / 7 сообщений из 7, страница 1 из 1
22.03.2011, 15:56
    #37177493
postrelll
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При работе макроса самопроизвольно закрывается книга
Дорогие форумчане, буду вам очень признателен за помощь в следующем деле - я написал макрос, который по сути формирует из определенного массива данных из разных книг одну таблицу по определенному шаблону. Есть совершенно непонятная проблема - при перегоне содержимого ячеек из одной книги в другую первая книга может в определенный момент выполнения макроса самопроизвольно закрыться - что естественно ведет к сбою и неуспешному завершению работы макроса. Возможно я не корректно как-то сделал конструкцию услувного оператора. это конструкция, предполагает что при условии если такая-то ячейка в заданном столбце пуста - перейти на следующую иттерацию цикла (фрагмент кода начиная с If NNsumm <> Empty Then). Если убрать это условие - макрос нормально работает, но при включении этого условия - на определенной странице происходит закрытие книги - источника, и далее идет сбой. Честно говоря вообще не могу понять что в принципе может вызвать закрытие книги, учитывая что в макросе я ее закрытие нигде не прописываю

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
' ============================================================================================
'4й этап - массирование экспортных данных в таблицу по "Покупателям"
' ============================================================================================
        Sheets("Покупатели").Select
        last_data_cell = Range("B" & Rows.count).End(xlUp).Row
        j = 0
        For iii = 3 To last_data_report_counter
            Workbooks(book_name_source).Activate
            j = last_data_cell + iii
   
            NNnumber = Range("A" & iii)
            NNdate = date_correction(Range("B" & iii), path, sheet_name)
            NNsumm = Range("C" & iii).Value
            NNsumm = LTrim(NNsumm)
            NNsumm = RTrim(NNsumm)
       
'            If NNsumm <> Empty Then
                Workbooks(book_name2).Activate
                Sheets("Покупатели").Select
                Range("B" & j) = firm_name
                Range("C" & j) = instument
                Range("D" & j) = NNnumber
                Range("E" & j) = NNdate
                Range("F" & j) = NNsumm
                Range("G" & j) = INN
                Range("H" & j).Formula = "=HYPERLINK(""[" & path & "]" & "'" & sheet_name & "'!A1"")"
'            End If
        Next iii
Заранее спасибо
...
Рейтинг: 0 / 0
22.03.2011, 16:01
    #37177513
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При работе макроса самопроизвольно закрывается книга
IsEmpty может быть проверять?
...
Рейтинг: 0 / 0
22.03.2011, 16:05
    #37177524
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При работе макроса самопроизвольно закрывается книга
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
    Workbooks(book_name_source).Activate
    With Workbooks(book_name2).Sheets("Покупатели")
        last_data_cell = .Range("B" & Rows.Count).End(xlUp).Row
        j =  0 
        For iii =  3  To last_data_report_counter
            j = last_data_cell + iii
            NNnumber = Range("A" & iii)
            NNdate = date_correction(Range("B" & iii), Path, sheet_name)
            NNsumm = Range("C" & iii).Value
            NNsumm = Trim(NNsumm)
            If Len(NNsumm) Then
                .Range("B" & j & ":G" & j) = Array(firm_name, instument, NNnumber, NNdate, NNsumm, INN)
                .Range("H" & j).Formula = "=HYPERLINK(""[" & Path & "]" & "'" & sheet_name & "'!A1"")"
            End If
        Next iii
    End With
Хотя думаю лучше весь код оптимизировать.
...
Рейтинг: 0 / 0
22.03.2011, 18:57
    #37177984
postrelll
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При работе макроса самопроизвольно закрывается книга
The_Prist
спасибо за помощь.
Заменил свою часть кода на вашу, к сожалению проблема осталась - на тестовой книге в том же месте обрывается макрос =( обрабатывает 22 листа и книга с источником данных сама по себе закрывается, если убрать условие If Len(NNsumm) Then, то работает как по маслу. В чем может быть проблема ума не приложу =(
Не понимаю почему книга в принципе может быть закрыта, если это не указано в самом макросе.

Shocker.Pro
пробовал поменять условие типа: if IsEmpty(NNsumm) <> true then ...
результат не поменялся, увы =(
...
Рейтинг: 0 / 0
22.03.2011, 19:45
    #37178070
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При работе макроса самопроизвольно закрывается книга
postrelll,

проблема где-то вне приведенного кода. Тем более, вы говорите о переборе листов, а в приведенном коде кроме Sheets("Покупатели").Select ничего нет.
...
Рейтинг: 0 / 0
22.03.2011, 20:00
    #37178093
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При работе макроса самопроизвольно закрывается книга
Согласен с Shocker.Pro. И еще: замените переменную Path на что-то, что не является зарезервированным свойством объекта. Например - sPath
...
Рейтинг: 0 / 0
23.03.2011, 16:42
    #37179579
postrelll
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При работе макроса самопроизвольно закрывается книга
спасибо большое, начал копаться и таки нашел причину вылета. не знаю почему уперся в этот условный оператор, но ошибка в итоге была на виду, одна из моих процедур сохранения работала с текущей активной книгой, когда не выполнялось условие процедура просто сохраняла книгу-источник, вместо книги с результатом =)
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / При работе макроса самопроизвольно закрывается книга / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]