Access 2013 VBA:DoCmd.OutputTo与TransferSpreadsheet语法错误求助
解决VBA导出Excel时的语法错误问题
我帮你看了下这段代码,语法错误主要出在文件名拼接的字符串处理上,你写的Filepath & "\Invoicing info & Format(date, "yyyy-mm-dd")&"这部分,字符串嵌套引号、变量和函数的拼接方式完全不对,VBA根本没法正确解析。
给你修正后的完整代码,直接用就行:
Private Sub btnManualExportInvoicing_Click() Dim Filepath As String Filepath = CurrentProject.Path & "\Invoicing" ' 检查目标文件夹是否存在,不存在则创建 If Len(Dir(Filepath, vbDirectory)) = 0 Then MkDir Filepath End If ' 修正文件名拼接逻辑,正确转义并连接函数结果 DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12, _ "tblInvoicing", Filepath & "\Invoicing info " & Format(Date, "yyyy-mm-dd") & ".xlsx", True End Sub
关键的几个修正点给你说清楚:
- 原代码里把函数
Format(Date, "yyyy-mm-dd")直接塞在字符串里了,VBA不认识这种写法,必须用&把字符串和函数/变量分开拼接 - 字符串内部如果要写双引号,得用两个双引号(
"")转义,比如你要是想让文件名里带引号,就得写成"Invoicing ""Info"" " - 另外
TransferSpreadsheet这个方法的参数不需要加外层括号(除非你要接收它的返回值),原代码的括号也可能触发错误,所以我给去掉了
内容的提问来源于stack exchange,提问作者D. Steel
相关产品推荐
相关产品推荐

