Excel在打开/关闭时保存不需要的备份副本

时间:2014-04-24 19:34:15

标签: excel vba ms-access

我遇到一些问题,我的Access项目将打开Excel工作簿,删除第一行,然后保存并关闭它并重复5次。我唯一的问题是每次运行它总是用备份副本导出。

实施例: File1.xls 由于某种原因,File1.xls的备份也会被保存。知道我做错了什么吗?是否由于打开文件的某种写保护而进行备份?

Public Sub RemoveFirstRowExcel(SSFile As String)
On Error GoTo Exit_Proc
Dim xlApp As Object
Dim xlSheet As Object
Set xlApp = CreateObject("Excel.Application")
Set xlSheet = xlApp.Workbooks.Open(SSFile).Sheets(1)
With xlApp
'.Application.Sheets(SSSheet).Select
.Application.Rows("1:1").Select
.Application.Selection.EntireRow.Delete
.Application.ActiveWorkbook.Close SaveChanges:=True
.Quit
End With
Exit_Proc:
Set xlApp = Nothing
Set xlSheet = Nothing
End Sub

1 个答案:

答案 0 :(得分:0)

有一个布尔只读工作簿属性Workbook.CreateBackup。通过单击“工具”按钮(“保存”按钮旁边),“常规选项”,然后选中“始终创建备份”框,在“保存”对话框中进行设置。

CreateBackup也是Workbook.SaveAs方法中的可选参数。

您可以将工作簿保存为自身,并将复选框清除,将属性重置为false,尽管您会看到通常的文件存在警告。

或者您可以调整以下内容以适合您的代码:

Sub SaveAsDisableBackup()
If ActiveWorkbook.CreateBackup = True Then
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs _
        Filename:=ActiveWorkbook.Path & "\" & ActiveWorkbook.Name _
        , CreateBackup:=False
    Application.DisplayAlerts = True
End If
ActiveWorkbook.Close (True)
End Sub

凭借Workbook.CreateBackup = True创建的备份以.xlk扩展名保存,但您提到它们被保存为File1的备份**。xls **因此可能Workbook_BeforeSave正在使用事件来创建备份。

在修改源工作簿之前,与所有者/作者核对。