Так что это странно для меня, но у меня есть файл Excel 2016 с поддержкой макросов.Единственный макрос в файле - это событие BeforeSave
, которое хранится в ThisWorkbook
.После использования пустого файла один или два раза, он достигает точки, где открытие файла и выполнение каких-либо действий, например нажатие File
или Developer
или ввод данных, приводит к тому, что Excel перестает работать и закрывается.
Ниже приведено событие BeforeSave
, которое является единственным макросом в этом файле (в ThisWorkbook
нет модулей или пользовательских форм, больше ничего).
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Application.EnableEvents = False
Cancel = True
ThisWorkbook.Sheets("Pending").Columns(9).NumberFormat = "@"
ActiveWorkbook.Save
Application.EnableEvents = True
End Sub
Это базовое событие макроса будет работать отличнона несколько раз.Затем, после того, как некоторые данные в файле, при следующем его открытии возникнет проблема.Это единственный файл Excel, в котором произошел этот сбой. Я все еще могу открыть исходный файл резервной копии с помощью этого макроса, в котором еще нет данных, и все будет в порядке.
Я попытался открыть файл вБезопасный режим, и я установил все последние обновления Microsoft Office.
Кто-нибудь еще сталкивался с такой проблемой?Это как-то связано с макросом событий BeforeSave
?
ОБНОВЛЕНИЕ: Я изменил ActiveWorkbook
на ThisWorkbook
.Кроме того, я перешел от редактирования всего столбца к поиску последней использованной строки и форматированию этого диапазона, исключая строку заголовка.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Application.EnableEvents = False
Cancel = True
Dim Lastrow As Integer
Lastrow = ThisWorkbook.Sheets("Pending").Cells(Rows.Count, 9).End(xlUp).Row
ThisWorkbook.Sheets("Pending").Range("I2:I" & Lastrow).NumberFormat = "@"
ThisWorkbook.Save
Application.EnableEvents = True
End Sub
Спасибо.