DoEvents期间无法获取外部数据

我有一个Excel中的VBA子执行DoEvents,直到满足要求。 在此循环中,我需要获取外部数据并将该数据作为表导入到活动工作表中。 当VBA代码在本节中时,我不能单击“现有的连接”,我不明白为什么我不能这样做。 任何人都可以向我解释为什么这是不可能的?

DoEvents允许其他应用程序运行时间,并防止您的VBA代码locking整个系统。 它不允许您与VBA主机应用程序(在这种情况下为Excel)进行交互,因为VBA代码当前正在执行。

从MS文档 :

DoEvents函数放弃macros的执行,以便操作系统可以处理其他事件。 DoEvents函数将控制从应用程序传递到操作系统 。 DoEvents可能有用的一些情况包括:

  • 硬件I / O
  • 延迟循环
  • 操作系统调用
  • DDE死锁

强调我的

您可能希望调查将“获取外部数据和导入”过程集成到您的VBA代码中。 但是,它必须在DoEvents循环之前之后发生,而不是在发生之前