Excel VBA:工作簿。保存&;关闭而不保存
我有以下代码正在工作,但行。关闭关闭WB而不保存:Excel VBA:工作簿。保存&;关闭而不保存,excel,vba,Excel,Vba,我有以下代码正在工作,但行。关闭关闭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 .ScreenUp
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
部分无效。反之亦然。使用子文件夹顶部的应用程序
行远程控制(注释掉它们),并查看是否显示警告。如果我删除行则没有警告使用F8删除错误是一个完美的提示-我在打开工作簿时发现一个脚本正在运行,该脚本覆盖了先前脚本编写的内容。移除/更改scirpt后,它工作正常。非常感谢。