首页 文章

Access 2010 Excel导出1004错误

提问于
浏览
1

我在Access 2010中有一些VBA运行查询并将结果导出到Excel中的列 . 这里的目标是当用户按下所需按钮时,打开excel工作簿,如果它不存在则创建它 . 创建新工作簿时,VBA会按预期进行预制 . 我遇到的问题是工作簿已经存在 .

所以在我创建一个设置我的excel应用程序对象后,我尝试打开工作簿 . 当它不存在时发生1004错误,我有以下错误处理程序:

Select Case Err
    Case 1004   'Workbook doesn't exist, make it
    xl.Workbooks.Add
    Set wb = xl.ActiveWorkbook
    wb.SaveAs strWorkBook

    Resume Next

当用户打开现有工作簿时,系统会提示他们覆盖“是”,“否”,“取消”选项 . 除了yes之外的任何响应都会产生1004错误(看起来奇怪的是2个不同的错误,具有相同的代码#) . 我只是想找到解决这个问题的方法,不管是我写了一些VBA来自动接受,还是我还有别的东西允许用户说不/取消 . 最简单的是首选,我只是不希望弹出错误 .

1 回答

  • 1

    您无需依赖错误处理来处理Excel文件是否存在 . 使用 Dir() 检查它是否存在,并相应地打开或创建 .

    If Len(Dir(strFullPathToWorkbook)) > 0 Then
        ' open the workbook '
    Else
        ' create the workbook '
    End If
    

    如果这是一个新工作簿,请使用 wb.SaveAs strWorkBook .

    如果是现有工作簿,请使用 wb.Save .

相关问题