Сохраните и закройте файл Excel, созданный в 2016 году, и теперь он работает в Excel 365 - PullRequest
0 голосов
/ 22 марта 2019

У меня много раз была проблема с моим VBA для сохранения и закрытия файла, иногда он работает, а иногда и не работает.Я использую Task Scheduler для открытия файла и жду 30 минут, чтобы закрыть и сохранить файл.Иногда меня просили отладить код в строке

If wb.Name = GlobalBook.Name Then

Пожалуйста, дайте мне знать, если мне нужно что-то обновить, чтобы это работало.Спасибо.

Код модуля 1:

'Global variables
Public RunWhen As Double
Public Const cRunIntervalSeconds = 1800 ' seconds (set to 30 minutes)
Public Const cRunWhat = "SaveClose"  ' the name of the procedure to run
Public GlobalBook As Workbook

'Start Timer using interval set in global variables
Sub StartTimer()
    Set GlobalBook = ActiveWorkbook
    RunWhen = Now + TimeSerial(0, 0, cRunIntervalSeconds)
    Application.OnTime EarliestTime:=RunWhen, Procedure:=cRunWhat, _
        Schedule:=True
End Sub

'Stop the Timer whenever the workbook is closed prematurely
Public Sub StopTimer()
    On Error Resume Next
    Application.OnTime EarliestTime:=RunWhen, Procedure:=cRunWhat, _
        Schedule:=False
End Sub

'Close the workbook automatically once the Timer has expired
Public Sub SaveClose()
    'Time is up, workbook will save and close automatically
    Dim wb As Workbook
    For Each wb In Workbooks
        'Check to see if workbook is still open
        If wb.Name = GlobalBook.Name Then
            Set wb = Application.Workbooks(GlobalBook.Name)
            'Close workbook and Save Changes
            wb.Close SaveChanges:=True
        End If
        Next
End Sub

Код этой рабочей книги:

'When the workbook is opened, call StartTimer()
Public Sub Workbook_Open()
    Run "StartTimer"
End Sub

'Detect if the workbook is closed
Public Sub Workbook_BeforeClose(Cancel As Boolean)
    'Cancel Saveclose
    Run "StopTimer"
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...