我具有以下代码来打开和刷新Excel文件,然后保存,除了我拥有的几个文件具有Before_Close事件(对工作表进行一些更改)之外,该文件还可以正常工作。
当我在这些工作簿上使用VB Net代码时,它会提示并询问我是否确定要在关闭时保存更改。
我有类似的代码可以执行相同的操作,但是可以通过Excel文件中的VBA进行操作,但是我没有得到提示,提示它只是保存和覆盖,我可以用VB网络代码来阻止此操作吗。
Dim XLApp As Object
Dim WBook As WorkBook
XLApp = CreateObject("Excel.Application")
XLApp.Visible = False
XLApp.DisplayAlerts = False
WBook = XLApp.workbooks.Open("Y:\Test.xlsb")
WBook.Refreshall()
WBook.Save()
WBook.Close()
XLApp.Quit()
WBook = Nothing
XLApp = Nothing
欢呼
答案 0 :(得分:0)
我似乎有一个修复程序,但是需要自己修改excel文件,这并不理想。
由于我的一份报告需要在工作表关闭时进行修改,以准备下次打开,因此,如果确定要保存,此解决方法似乎会使它无法再次提出要求。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Not Me.Saved Then
Call sbWritePivotWhenClosing
Me.Save
Me.Saved = True
Else
Call sbWritePivotWhenClosing
Me.Saved = True
End If
End Sub