2013-11-22 43 views
1

我試圖編寫代碼以使Excel關閉Excel中剛剛導出的Access的電子表格。但是,我一直在拋出一個錯誤,告訴我我的桌子不存在,即使我正在開始直立它!非常令人沮喪。所有的幫助非常感謝。謝謝。出現錯誤嘗試關閉使用Access VBA導出的工作簿

Private Sub Command12_Click() 

DoCmd.SetWarnings False 

Const xlFileName As String = "\\ct13nt003\mfg\SMT_Schedule_Files\SMT Line Progress Files\Test\SMT2Updated.xlsx" 
Dim xlapp As Object 
Dim wb As Object 

Set xlapp = CreateObject("Excel.Application") 
Set wb = xlapp.workbooks.Open(xlFileName) 

'Delete Existing File First; then create new 
On Error Resume Next 
Kill xlFileName 
On Error GoTo 0 

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "SMT4Export", xlFileName, True 

wb.Close savechanges:=False 

Set wb = Nothing 
Set xlapp = Nothing 

DoCmd.SetWarnings True 

End Sub 
+0

請張貼帶有堆棧跟蹤 – czuroski

+0

實際評論它指出 - 「運行時錯誤'3001' - Microsoft Office Access數據庫引擎找不到對象'SMT4Export'。請確保該對象存在,並且正確拼寫其名稱和路徑名稱。「 – ackdaddy

+0

'DoCmd.TransferSpreadsheet acExport,acSpreadsheetTypeExcel12Xml,「SMT4Export」,xlFileName,True'是突出顯示的行。 – ackdaddy

回答

1

您在Excel中打開xlFileName。然後,您嘗試Kill xlFileName而該工作簿文件仍在Excel中打開。因此Kill嘗試失敗,但您不知道這一事實,因爲您通過使用On Error Resume Next來抑制錯誤消息。

如果你想要Kill它你需要在Excel中關閉工作簿來釋放鎖定。另一方面,正如Gord已經提到的那樣,代碼中沒有跡象表明首先在Excel中打開工作簿的原因。

關於錯誤消息「運行時錯誤'3001' - Microsoft Office Access數據庫引擎找不到對象'SMT4Export'。確保對象存在...」,請確保您的數據庫包含表或查詢命名爲SMT4Export

看來TransferSpreadsheet是目標。我建議你避免創建一個Excel應用程序實例現在,看看你是否能得到您的代碼工作的這個簡化版......

Private Sub Command12_Click() 
    Const xlFileName As String = "\\ct13nt003\mfg\SMT_Schedule_Files\SMT Line Progress Files\Test\SMT2Updated.xlsx" 

    DoCmd.SetWarnings True 

    If Len(Dir(xlFileName)) > 0 Then 
     Kill xlFileName 
    End If 

    DoCmd.TransferSpreadsheet acExport, _ 
     acSpreadsheetTypeExcel12Xml, "SMT4Export", xlFileName, True 
End Sub 
+0

我試圖殺死已存在的​​文件「SMT2Updated.xlsx」,然後將存在於我的數據庫中的表「SMT4Export」導出到名爲「SMTUpdated.xlsx」的文件中,然後關閉新文件。這是我真正的問題是我無法將其導出然後關閉。 – ackdaddy

+0

在嘗試TransferSpreadsheet之前,在Excel中打開* SMT2Updated.xlsx *的要點是什麼? – HansUp

+0

沒有一個,我忘記了那裏有那行代碼。我刪除了它,但我仍然收到錯誤。我顯然是一個新手,所以我試圖通過不幸的方式穿過。 – ackdaddy

相關問題