Excel 2016 VBA для принудительного сохранения и закрытия отдельной книги - PullRequest
0 голосов
/ 14 июля 2020

Моя задача: хотя я использую отдельную книгу для выполнения кода VBA (Компания не разрешает большинству сотрудников использовать книгу с поддержкой макросов), некоторые книги остаются открытыми пользователями, и VBA не может сохранять и закройте обновленную книгу во время автоматизации.

Я использую этот фрагмент кода в течение многих лет. Я хочу усовершенствовать код, чтобы принудительно сохранить и закрыть открытые книги:

Sub RefreshUser1()

    Workbooks.Open Filename:="\\General.local\shares\Shared\Dept\Tool\USERS\User1\Tool_User1.xlsx"
    Application.DisplayAlerts = False
    ActiveWorkbook.RefreshAll
    ActiveWorkbook.Save
    ActiveWindow.Close
    Application.DisplayAlerts = True

End Sub

Я знаю, что мне не хватает чего-то, чтобы заставить открытую книгу сохранять как то же имя файла и закрыть, но просто могу не нахожу в своих поисках. Любая помощь искренне приветствуется!

1 Ответ

0 голосов
/ 14 июля 2020

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

Sub RefreshUser1()
Dim Wb as Excel.Workbook

    Workbooks.Open Filename:="\\General.local\shares\Shared\Dept\Tool\USERS\User1\Tool_User1.xlsx"
    Application.DisplayAlerts = False
    Set Wb = ActiveWorkbook
    WbName = Wb.path & "\" & Wb.name
    Wb.RefreshAll
    Wb.SaveAs (wb.name, FileFormat:=xlWorkbookNormal)
    Wb.Close
    Application.DisplayAlerts = True

End Sub
...