Excel Обновить и сохранить без каких-либо запросов - PullRequest
0 голосов
/ 14 января 2019

У меня есть следующий код, чтобы открыть и обновить файл Excel, а затем сохранить, это прекрасно работает, за исключением пары моих файлов, у которых есть событие Before_Close, которое вносит некоторые изменения в лист.

Когда я использую код VB Net в этих книгах, он запрашивает и спрашивает, действительно ли я хочу сохранить изменения при закрытии.

У меня есть подобный код, чтобы сделать то же самое, но через VBA в файле Excel, и я не получаю подсказку, что он просто сохраняет и перезаписывает, есть ли что-нибудь, что я могу сделать с сетевым кодом VB, чтобы остановить это.

  Dim XLApp As Object
  Dim WBook As WorkBook

  XLApp = CreateObject("Excel.Application")
  XLApp.Visible = False
  XLApp.DisplayAlerts = False 

  WBook = XLApp.workbooks.Open("Y:\Test.xlsb")
  WBook.Refreshall()
  WBook.Save()
  WBook.Close()

  XLApp.Quit()

  WBook = Nothing
  XLApp = Nothing

Приветствия

1 Ответ

0 голосов
/ 15 января 2019

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

Поскольку в одном из моих отчетов необходимо изменить лист, когда он закрывается при подготовке к открытию в следующий раз, этот обходной путь, по-видимому, останавливает его от повторного запроса, если обязательно сохранить.

Private Sub Workbook_BeforeClose(Cancel As Boolean)

   If Not Me.Saved Then   
      Call sbWritePivotWhenClosing
      Me.Save
      Me.Saved = True       
    Else  
     Call sbWritePivotWhenClosing
     Me.Saved = True
    End If
  End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...