![](/img/trans.png)
[英]VBA - Delete all workbooks but the active, then close (and do not save) the active one
[英]VBA: Workbooks.Save & Close not saving
我有下面的代碼正在工作,但是.close行關閉了WB而沒有保存:
Option Explicit
Public Function updateStatus(fpath As String, fname As String, num As String)
Dim wk As String, yr As String
Dim owb As Workbook
Dim trow As Variant
With Application
.DisplayAlerts = False
.ScreenUpdating = False
.EnableEvents = False
End With
Set owb = Application.Workbooks.Open(fpath & fname)
trow = owb.Sheets(1).Range("Change" & num).Row
owb.Sheets(1).Cells(trow, 5).value = "Test"
With owb
.Save
.Close SaveChanges:=True 'This line doesn't seem to work
End With
With Application
.DisplayAlerts = True
.ScreenUpdating = True
.EnableEvents = True
End With
End Function
如果我刪除該行,則WB保持打開狀態,並且看到更改。 如果添加該行並打開特定文件,則看不到任何更改。
如注釋中所述,代碼看起來還不錯,您可能已在Excel上啟用了一些數據保護功能,不允許進行保存。 嘗試做一個最小的例子,像這樣:
Option Explicit
Public Sub TestMe()
Dim owb As Workbook
Set owb = Application.Workbooks.Open("C:\Users\vityata\Desktop\Testing.xlsx")
owb.Save
owb.Close
End Sub
然后,使用F8
調試,並在通過owb.Save
傳遞后查看收到的消息。
只是您知道:
.Save
.Close SaveChanges:=True
使用.Save
行,可以使SaveChanges:=True
部分無用。 反之亦然。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.