Access 2010 Excel导出1004错误

Access 2010 Excel导出1004错误,excel,ms-access,ms-access-2010,Excel,Ms Access,Ms Access 2010,我在Access 2010中有一些VBA,它运行查询并将结果导出到Excel中的列。这里的目标是,当用户按下所需按钮时,打开excel工作簿,如果它不存在,则创建它。创建新工作簿时,VBA将按预期执行。我遇到的问题是工作簿已经存在 因此,在创建一个set my excel应用程序对象后,我尝试打开工作簿。当它不存在时,会发生1004错误,我有以下错误处理程序: Select Case Err Case 1004 'Workbook doesn't exist, make it

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

因此,在创建一个set my 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

当用户打开现有工作簿时,系统会提示用户覆盖是、否、取消选项。除“是”之外的任何响应都会生成1004错误(似乎有两个不同的错误具有相同的代码#)。我只是在寻找一种方法来解决这个问题,不管是我写一些VBA来自动接受,还是我有一些其他的东西允许用户说不/取消。最好使用最简单的方法,我只是不希望出现错误。

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

If Len(Dir(strFullPathToWorkbook)) > 0 Then
    ' open the workbook '
Else
    ' create the workbook '
End If
如果这是新工作簿,请使用wb.SaveAs strWorkBook


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

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

If Len(Dir(strFullPathToWorkbook)) > 0 Then
    ' open the workbook '
Else
    ' create the workbook '
End If
如果这是新工作簿,请使用wb.SaveAs strWorkBook


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

认为我可能在SaveAs conflictResolution中找到了解决方案,但没有骰子认为我可能在SaveAs conflictResolution中找到了解决方案,但没有骰子这很好,但由于某种原因,当我打开一个现有工作簿时,SaveAsNow仍然存在问题1004错误表示找不到好的,这已修复,但我仍收到覆盖提示,我必须点击“是”或“错误发生”这已修复,现在似乎有一个路径问题似乎很奇怪,因为第一次是复制粘贴。谢谢你的帮助。下次尽量不要以居高临下的语气回应。我听从了你的建议,所以请不要表现得好像我忽略了它。对此我很抱歉。我很沮丧,这不是一个合理的借口。我会删除冒犯性的评论。这很好,但由于某种原因,我的SaveAsNow仍然存在问题。当我打开现有工作簿时,它会发出1004错误,表示找不到它。好的,已经修复,但我仍然会收到覆盖提示,我必须单击“是”或“发生错误”。它已修复,现在似乎出现错误从第一次开始似乎很奇怪的路径问题是复制粘贴。谢谢你的帮助。下次尽量不要以居高临下的语气回应。我听从了你的建议,所以请不要表现得好像我忽略了它。对此我很抱歉。我很沮丧,这不是一个合理的借口。我将删除冒犯性的评论。