You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:43:34