XLSB не сохранит изменения в макросах - PullRequest
0 голосов
/ 21 марта 2019

Я работал над файлом .xlsb в Office Excel 2016. Я разработал макросы в рамках проекта VBA, и он работал нормально (до v25 файла), работая более 3 месяцев.

Теперь мне нужно внести некоторые изменения в макросы VBA.Когда я сохраняю и закрываю файл, изменения кода VBA теряются при следующем открытии файла (хотя Windows распознала правильную последнюю сохраненную дату).

Файл имеет макросы в событиях Workbook_Open и Workbook_BeforeClose,но ничего не изменилось, так как он работал нормально.Следует отметить, что в проекте VBA отсутствует событие Workbook_BeforeSave.

Действия по устранению неполадок, которые я пробовал:

  1. Удаление события Workbook_BeforeClose по частям, а затем полностью
  2. Созданиеновый файл с нуля и копирование в код VBA
  3. Сохранение как в окне редактора VBA, так и в окне приложения Excel
  4. Сохранение в качестве нового имени файла

Здесьэто весь модуль ThisWorkbook, в случае, если он помогает:

Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
  On Error Resume Next
  Application.DisplayAlerts = False
  Sheets("Picking").Delete
  Sheets("Ordering").Delete
  Clear_UI
  Dim UI As Worksheet
  Set UI = Sheets("User Interface")
  With UI
    .Shapes("Menu_StartNewEvent").OnAction = ""
    .Shapes("Menu_UpdateEvent").OnAction = ""
    .Shapes("Menu_ProduceSheets").OnAction = ""
    .Shapes("Menu_CountIn").OnAction = ""
    .Shapes("Menu_EditPackages").OnAction = ""
    .Shapes("Menu_EditCocktails").OnAction = ""
    .Shapes("Menu_EditInventory").OnAction = ""
  End With
  Unhide_Them
  Set UI = Sheets("Inventory Editor")
  UI.Shapes("SaveButton").OnAction = ""
  Set UI = Sheets("Cocktail Editor")
  UI.Shapes("SaveButton").OnAction = ""
  Set UI = Sheets("Package Editor")
  UI.Shapes("SaveButton").OnAction = ""
  Hide_Them
  Application.DisplayAlerts = True
  ThisWorkbook.Save
End Sub

Private Sub Workbook_Open()
  On Error Resume Next
  Application.DisplayAlerts = False
  ThisWorkbook.Windows.Item(1).Caption = Replace(ThisWorkbook.Windows.Item(1).Caption, " [Repaired]", "")
  ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Name, AccessMode:=xlExclusive
  ThisWorkbook.Saved = True
  Application.DisplayAlerts = True

  Dim UI As Worksheet
  Set UI = Sheets("User Interface")
  With UI
    .Activate
    .Shapes("Menu_StartNewEvent").OnAction = "ThisWorkbook.Start_New_Order"
    .Shapes("Menu_UpdateEvent").OnAction = "ThisWorkbook.Update_Event_Details"
    .Shapes("Menu_ProduceSheets").OnAction = "ThisWorkbook.Build_Only_Picking_Sheet"
    .Shapes("Menu_CountIn").OnAction = "ThisWorkbook.Build_Only_Picking_Sheet"
    .Shapes("Menu_EditPackages").OnAction = "Edit_Packages"
    .Shapes("Menu_EditCocktails").OnAction = "Edit_Cocktails"
    .Shapes("Menu_EditInventory").OnAction = "Edit_Inventory"
  End With
  Clear_UI
  Set UI = Sheets("Inventory Editor")
  UI.Shapes("SaveButton").OnAction = "Save_Inventory_Editor"
  Set UI = Sheets("Cocktail Editor")
  UI.Shapes("SaveButton").OnAction = "Save_Cocktail_Editor"
  Set UI = Sheets("Package Editor")
  UI.Shapes("SaveButton").OnAction = "Save_Package_Editor"
  Hide_Them
End Sub

Я посмотрел на вопрос / ответ здесь: StackOverflow: xla-file-not-save-in-excel-2010

...