我遇到一些问题,我的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
答案 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
正在使用事件来创建备份。
在修改源工作簿之前,与所有者/作者核对。