繁体   English   中英

VBA:工作簿。保存并关闭而不保存

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM