2014-04-24 25 views
0

我遇到一些問題,其中我的Access項目將打開一個Excel工作簿,刪除第一行,然後保存並關閉並重復5次。我唯一的問題是它每運行一次都會出現備份副本。Excel在打開/關閉時保存不需要的備份副本

示例: 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

有一個布爾只讀工作簿屬性Workbook.CreateBackup。通過單擊工具按鈕(保存按鈕旁邊),常規選項,然後選中總是創建備份框,將其設置在另存爲對話框中。

CreateBackup也是Workbook.SaveAs方法中的可選參數。

儘管您會看到通常的File Exists警告,但您可以通過將複選框保存爲自己將該屬性重置爲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擴展,但你提到它們被保存爲文件1的備份** XLS * *因此有可能使用Workbook_BeforeSave事件來創建備份。

修改源工作簿之前,請諮詢所有者/作者。

相關問題