簡體   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