2014-03-25 71 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