Access 2010 Excel导出1004错误

时间:2012-08-09 16:38:38

标签: excel ms-access ms-access-2010

我在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 个答案:

答案 0 :(得分:1)

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

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

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

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