Логика:
Закройте файл Excel без сохранения и просто снова откройте его.Но тогда как мне открыть его из того же файла?
- Создать VBScript из вашего кода
- Установите задержку, скажем, на 3 секунды, и код для открытия файла Excel
- Вызовите vbscript и закройте текущий файл.
Это то, что вы пытаетесь?
Sub Sample()
Dim file As String
file = ThisWorkbook.Path & "\DeletemeLater.vbs"
Sheet1.Range("A2").Value = "Blah Blah" '<~~ This change will not be saved
'~~> Create a vbscript file
Open file For Output As #1
Print #1, "WScript.Sleep 300"
Print #1, "Set oExcelApp = GetObject(,""Excel.Application"")"
Print #1, "oExcelApp.Visible=True"
Print #1, "Set oWB = oExcelApp.Workbooks.Open(" & Chr(34) & ThisWorkbook.FullName & Chr(34) & ")"
Close #1
Shell "wscript " & Chr(34) & file & Chr(34), vbNormalFocus
ThisWorkbook.Close (False)
End Sub
И еще одна вещь.Добавьте это в область кода рабочей книги
Private Sub Workbook_Open()
On Error Resume Next
Kill ThisWorkbook.Path & "\DeletemeLater.vbs"
On Error GoTo 0
End Sub