Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Зависает Excel при 3-м повторе макроса
 
Добрый день. Появилась проблема. Зависает Excel при повторе макроса. Значения не меняются, ничего не меняется в файлах, макрос просто повторяет одно и то же, но на третьем разе зависает полностью Excel. ctrl+pause не работает, окна не отвечают. Выйти можно только через диспетчер задач или нажав на крестик в углу окна Excel. Файла примера не прикладываю, макрос смысла нет выкладывать, ибо там более 5к строк. Макрос работает с UserForm (3 шт.), 2 файла. Есть место в макросе, которое я недавно менял (не знаю, зависал ли Excel до того, как я поменял). При выборе варианта в юзерформ он открывает файл из сетевого диска. Думаю, что проблема в этом. Если файл уже открыт, то появляется окно "Файл уже открыт. Повторное открытие приведет к потере выполненных изменений". Если нажать в этом окне на крестик, то макрос корректно закончит работу, но на третий раз зависает Excel полностью.
Код
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
ActiveWorkbook.ActiveSheet.DisplayPageBreaks = False

Dim nagruzName As String
nagruzName = Worksheets("Лист1").Cells(1, 5)
otvet = MsgBox("Имя книги: " & nagruzName & " ?", vbYesNo)

Dim fullname As String
Application.ScreenUpdating = False
fullname = "W:\" & nagruzName & ".xlsb"
Select Case otvet
    Case vbYes
    On Error Resume Next
           Workbooks.Open fullname
    Case vbNo
           nagruzName = InputBox("Введите имя книги")
             If nagruzName = "" Then
               Exit Sub
             End If
On Error Resume Next
fullname = "W:\" & nagruzName & ".xlsb"
           Workbooks.Open fullname
           Workbooks("Книга1.xlsm").Worksheets("Лист1").Cells(1, 5) = nagruzName
End Select

Может кто-то уже сталкивался с такой проблемой?
Изменено: Hellmaster - 4 Сен 2019 14:00:04
 
На третьем запуске всего макроса? Или на третьем шаге цикла внутри кода?
Цитата
Hellmaster написал: Файла примера не прикладываю, макрос смысла нет выкладывать
Тогда зачем сюда написали?
Согласие есть продукт при полном непротивлении сторон.
 
Цитата
Hellmaster написал:
Файла примера не прикладываю,
И правильно - зачем он, если "неисправность" искать не нужно.
 
Sanja, на третьем запуске всего макроса. Юрий М, я даже не знаю как из этих двух рабочих файлов сделать мини пример. Сюда написал с надеждой, что у кого-то уже была подобная проблема с зависанием.
 
Цитата
Hellmaster написал: Сюда написал с надеждой, что у кого-то уже была подобная проблема с зависанием.
Были такие проблемы. Как правило они в коде. Но они были в МОЕМ коде, и я их исправил. Вам это не поможет
Согласие есть продукт при полном непротивлении сторон.
 
Уберите On Error Resume Next и узнаете ошибку
Согласие есть продукт при полном непротивлении сторон.
 
Sanja, макрос зависает при 3-м повторе после момента с открытием второго файла. На всплывающем окне о "файл уже открыт..." я нажимаю на крестик (так же как и в первые 2 раза), после чего Excel зависает. Часть кода с открытием второго файла я добавил в первое сообщение.
Ругается на строку Workbooks.Open fullname  но ведь в первые 2 раза он срабатывает правильно, даже при уже открытом файле.
 
Пересмотрите логику. Сначала проверьте открыта книга или нет, а затем уже открывайте
Согласие есть продукт при полном непротивлении сторон.
 
Скажите, хотя бы, на какой строке происходит неприятность?
Попробуйте убрать игнор ошибок.
И попробуйте добавить application.DisplayAlerts=false. Хотя, вряд ли поможет...
 
Юрий М, про ошибку в строке написал выше. application.DisplayAlerts=false ставил, это не помогает.
Sanja,  спасибо за совет. Попробую функцию дописать на проверку.
Страницы: 1
Читают тему (гостей: 1)
Наверх