我在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来自动接受,还是我还有别的东西允许用户说不/取消。最简单的是首选,我只是不希望弹出错误。
答案 0 :(得分:1)
您无需依赖错误处理来处理Excel文件是否存在。使用Dir()
检查它是否存在,并相应地打开或创建。
If Len(Dir(strFullPathToWorkbook)) > 0 Then
' open the workbook '
Else
' create the workbook '
End If
如果这是一个新工作簿,请使用wb.SaveAs strWorkBook
。
如果是现有工作簿,请使用wb.Save
。