从Access 2013运行Excel 2013宏时发生VBA自动化错误(系统调用失败)

插口

我有一个Access(2013)数据库,用于存储/处理从Qualtrics在线调查中收到的所有数据。从Qualtrics下载的原始数据位于一个格式不佳的CSV文件中,无法导入到Access中,因此我在Excel(2013)中有一个相当复杂的宏,可用于在导入到Access之前对数据进行预处理。

在Access中,我使用以下代码打开包含宏的excel文件,运行宏,保存工作簿,然后关闭它。几个月来一直运行良好,但是现在当我运行它时,它在Excel宏的末尾停止,并显示运行时错误:-2147417856自动化错误系统调用失败。

ActivateOrOpenWorkbook WbkName & ".xlsm", strWbkPath
appExcel.Run ProcName, ProcArg

appExcel.Workbooks(WbkName).Save
If appExcel.Workbooks.Count = 1 Then
    appExcel.Quit
Else
    appExcel.Workbooks(WbkName).Close True
End If

ActivateOrOpenWorkbook只是一个自定义函数,可以准确执行其名称所暗示的功能,appExcel是Excel Application。工作簿始终可以正常打开,并且宏开始运行,但是它实际上从未达到控制权返回到Access VBA并保存工作簿的地步。

如果我在运行Access过程之前打开工作簿,在每个主要的VBA步骤(在Access和Excel中)都插入断点,然后一次遍历整个Sub,那么它确实运行良好。如果我尝试让VBA从头到尾运行所有内容,那只会失败。

根据这些证据以及我在网上看到的类似问题的故事,我怀疑由于Excel宏的运行时间太长而发生了错误(我们最近在Qualtrics调查中添加了一些新变量),而Access正在尝试在Excel完成之前收回控制权。我只是没有找到任何可行的方法来解决该可疑问题或对其进行进一步调查。

我确实尝试将这个临时的Wait例程插入到Access Sub的ErrorHandling中,但是它根本不起作用,因为错误消息仍然以与以前相同的时间弹出。

If Err = -2147417856 Then
TWait = Time
TWait = DateAdd("s", 15, TWait)
Do Until TNow >= TWait
    TNow = Time
Loop
Resume Next

任何帮助将不胜感激!

row

您是否尝试DoEvents在预处理宏中使用?

如果您有一个循环在逐行处理CSV文件,DoEvents那么请经常使用它,使任何未决事件都有运行的机会。在每行上都调用它可能会过大,所以也许每100行开始并从那里进行调整。

鉴于宏在您遍历Subs时起作用,因此似乎不是问题的总执行时间。如果Access由于Excel似乎没有响应而引发错误,则DoEvents可能足以阻止Access放弃

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从Access 2013运行Excel 2013宏时发生VBA自动化错误(系统调用失败)

来自分类Dev

Access 2013 VBA自动使Excel丢失窗口

来自分类Dev

VBA-自动化错误-Excel 2013

来自分类Dev

VBA-自动化错误-Excel 2013

来自分类Dev

自动格式化Excel工作表名称VBA MS Access 2013

来自分类Dev

Access VBA中的自动化错误

来自分类Dev

在Access 2013中但在Access 2010中未运行时,Access dB投掷运行时5 Shell错误

来自分类Dev

MS Access 2013/365中的ActiveGantt Activex控件-对象方法上的VBA运行时错误

来自分类Dev

通过Access 2013 VBA编辑Excel 2013文件后无法打开

来自分类Dev

Access 2013运行时中未显示启动表单

来自分类Dev

导入Excel电子表格时MS Access 2013类型转换失败

来自分类Dev

VBA运行时错误1004:尝试在Excel 2013中创建表时,对象_Global的方法范围失败

来自分类Dev

在Project 2010中运行Excel 2016 VBA时出现``未注册自动化错误库''

来自分类Dev

在Project 2010中运行Excel 2016 VBA时出现``未注册自动化错误库''

来自分类Dev

如何从TFS 2013 UI运行自动化测试?

来自分类Dev

VBA Excel-Access 3251运行时错误

来自分类Dev

Access 2013插入/更新

来自分类Dev

在记录更改时运行VBA,但不构成Open Access 2013

来自分类Dev

通过在SSIS中运行excel VBA宏来自动化过程

来自分类Dev

每次打开或关闭工作簿时,都在Excel 2013中运行宏

来自分类Dev

没有足够的内存来运行excel 2013

来自分类Dev

Excel 2016/2013崩溃两次运行SaveAs方法

来自分类Dev

Excel 2013:查询运行后条件格式更改

来自分类Dev

没有足够的内存来运行excel 2013

来自分类Dev

自动化Excel宏

来自分类Dev

从Excel错误2517调用Access VBA函数

来自分类Dev

运行时错误'1004':添加新的数据透视表时,Range类的复制方法失败了Excel 2013

来自分类Dev

VBA代码在excel 2013中运行,但不在2010中运行

来自分类Dev

VBA代码在excel 2013中运行,但不在2010中运行

Related 相关文章

  1. 1

    从Access 2013运行Excel 2013宏时发生VBA自动化错误(系统调用失败)

  2. 2

    Access 2013 VBA自动使Excel丢失窗口

  3. 3

    VBA-自动化错误-Excel 2013

  4. 4

    VBA-自动化错误-Excel 2013

  5. 5

    自动格式化Excel工作表名称VBA MS Access 2013

  6. 6

    Access VBA中的自动化错误

  7. 7

    在Access 2013中但在Access 2010中未运行时,Access dB投掷运行时5 Shell错误

  8. 8

    MS Access 2013/365中的ActiveGantt Activex控件-对象方法上的VBA运行时错误

  9. 9

    通过Access 2013 VBA编辑Excel 2013文件后无法打开

  10. 10

    Access 2013运行时中未显示启动表单

  11. 11

    导入Excel电子表格时MS Access 2013类型转换失败

  12. 12

    VBA运行时错误1004:尝试在Excel 2013中创建表时,对象_Global的方法范围失败

  13. 13

    在Project 2010中运行Excel 2016 VBA时出现``未注册自动化错误库''

  14. 14

    在Project 2010中运行Excel 2016 VBA时出现``未注册自动化错误库''

  15. 15

    如何从TFS 2013 UI运行自动化测试?

  16. 16

    VBA Excel-Access 3251运行时错误

  17. 17

    Access 2013插入/更新

  18. 18

    在记录更改时运行VBA,但不构成Open Access 2013

  19. 19

    通过在SSIS中运行excel VBA宏来自动化过程

  20. 20

    每次打开或关闭工作簿时,都在Excel 2013中运行宏

  21. 21

    没有足够的内存来运行excel 2013

  22. 22

    Excel 2016/2013崩溃两次运行SaveAs方法

  23. 23

    Excel 2013:查询运行后条件格式更改

  24. 24

    没有足够的内存来运行excel 2013

  25. 25

    自动化Excel宏

  26. 26

    从Excel错误2517调用Access VBA函数

  27. 27

    运行时错误'1004':添加新的数据透视表时,Range类的复制方法失败了Excel 2013

  28. 28

    VBA代码在excel 2013中运行,但不在2010中运行

  29. 29

    VBA代码在excel 2013中运行,但不在2010中运行

热门标签

归档