Excel вылетает после SaveAs - PullRequest
       7

Excel вылетает после SaveAs

0 голосов
/ 28 ноября 2018

Я унаследовал проект Excel, который мне поручено автоматизировать и развивать.

Вариант использования
- Приходит заказ
- Пользователь открывает базу (root)файл Excel
- вводит соответствующую информацию (клиент, заказ, данные, задачи и т. д.)
- и сохраняет новый файл задач в папке с выполняющимися задачами
- оставляет базовый (корневой) Excelосновной и готов к следующему заказу.

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

Моя проблема связана с именем файла ActiveWorkbook.SaveAs.

По мере выполнения(F5) строк, он проходит через все шаги, создает имя файла, показывает пользовательский интерфейс Save As, правильно показывает правильную папку и предлагаемое имя файла, и фактически сохраняет файл.Как я вышел из ErrHandler и последнего Application.EnableEvents = yes - он вылетает.Кажется, он либо закрывает базовый файл, открывая новый, либо переносит активную книгу в новый файл сохранения.

Это нормально, если он может прекратить сбой.

If criticalInput then
    Msgbox “U been bad, U Shall not PASS!”, vbCritical ‘Not actual text or box showing, just for demo.
Else
    Dim fileSaveName As Variant

    '### It Crashes after saving (possible at opening)
    fileSaveName = Application.GetSaveAsFilename( _
    InitialFileName:=tasksfolder & "\" & suggestFilename, _
    fileFilter:="Excel-projectmappe med aktive makroer (*.xlsm), *.xlsm")

    If fileSaveName  False Then
        '### here is where you would save your file
        DoEvents ‘ Debugging research tells this should be here. Not that is changes anything.
        ActiveWorkbook.SaveAs fileSaveName ‘ During dev this has been disabled.
    End If ' SaveAs
End If ' criticalInput

ErrHandler:
    '## Reset back to default
    Application.DefaultFilePath = strDefault

    Application.EnableEvents = True
End Sub

Отладка
- я могу просто сохранить файл, если отключу SaveAs и работаю только с базовым (корневым) файлом Excel.
- Я могу открыть новый файл задачи и сохранить его.(Просто извиняюсь за перезапись, да / нет)
- В исследовании отладки говорилось, что мне нужно DoEvents до SaveAs
- В исследовании отладки также говорится, что присутствуют только наиболее релевантные ссылки (в моем случае отмените выбор OLE Automation)
- Во время отладки я также создал AfterSave () и Open ().Обычно они запускаются при нормальной работе, но не работают, когда происходит сбой SaveAs.Например, когда я отключаю SaveAs или когда я обычно открываю книгу Excel.

Private Sub Workbook_AfterSave(ByVal Success As Boolean)
    On Error GoTo ErrHandler<br>
    If Success Then
        Application.EnableEvents = False
        'MsgBox "Success save", vbInformation ' for debugging purposes.
    End If<br>
ErrHandler:
    Application.EnableEvents = True
End Sub
Private Sub Workbook_Open()
    'MsgBox "I haz been opened, yehawww", vbInformation ' debugging
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...