VBA:工作簿保存和关闭不保存



>我有以下代码可以正常工作,但 .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:UsersvityataDesktopTesting.xlsx")
owb.Save
owb.Close
End Sub

然后用F8调试,一旦你经过owb.Save,就会看到你得到的消息。

只是你知道:

.Save
.Close SaveChanges:=True

使用.Save线,您可以使SaveChanges:=True零件无用。反之亦然。

最新更新