我在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 回答
您无需依赖错误处理来处理Excel文件是否存在 . 使用
Dir()
检查它是否存在,并相应地打开或创建 .如果这是一个新工作簿,请使用
wb.SaveAs strWorkBook
.如果是现有工作簿,请使用
wb.Save
.