2014-03-25 72 views
2

我有一個宏設置,在點擊一個按鈕時,它將數據導出到excel文件,它運行平穩,似乎直到我得到錯誤的結束運行時錯誤3434無法擴展命名範圍導出宏錯誤

的代碼是:

Public Sub ExportTblToExcel() 
Const FILE_PATH As String = "C:\" 
Dim FULLPath As String 
strFullPath = FILE_PATH 
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel7, "tblExport", strFullPath & "CD_Data.xlsx", False 
MsgBox ("Export Complete. Check the C:\ Drive for the Document CD_Data") 
End Sub 

是在錯誤中強調的部分是:

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel7, "tblExport", strFullPath & "CD_Data.xlsx", False 

我也弄不清是什麼錯誤,它在過去的了一直工作到現在。

+0

試過了,我都嘗試你的建議相同的錯誤消息 – user2119980

回答

1

acSpreadsheetTypeExcel7適用於Excel 95格式,但您希望創建一個.xlsx文件。所以我認爲你應該指定一個不同的電子表格類型。試試acSpreadsheetTypeExcel12Xml

還可以在C:\以外的地方創建工作簿文件。選擇用戶具有文件創建權限的文件夾。 C:\ Temp \應該可以工作。

+0

每一次得到了同樣的錯誤底部。 – user2119980

+0

我有辦公室2013年嗎? – user2119980

+0

我建議的下一件事就是嘗試創建除'C:\。以外的文件。您的代碼是否適用於此更改? 'Const FILE_PATH As String =「C:\ Temp \」' – HansUp

0

使用自動化來打開Excel文件使用類似...的常規

Private Sub cmdExport_Click() 
    Dim myFile As String 
    Dim myDate As String 
    Dim xlApp As Object 

    myDate = Day(txtEnd) & "-" & Month(txtEnd) & "-" & Year(txtEnd) 
    myFile = WorkingDbFolder & "DKRForAccounts_" & myDate & ".xls" 

    'create temp table with combined data 
    DoCmd.SetWarnings False 
    DoCmd.OpenQuery "qryrptAccounts_XXX" 
    DoCmd.OpenQuery "qryrptAccounts_XXXDepRuns" 
    DoCmd.SetWarnings True 

    MsgBox "Excel about to open ... This only summaries Customers with an Email Address" 

    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "tblTEMP_XXXaccounts", myFile, True 

    Set xlApp = CreateObject("Excel.Application") 

    xlApp.Visible = True 

    xlApp.Workbooks.Open myFile, True, False 

    Set xlApp = Nothing 
End Sub