首页 > 解决方案 > 如何读取 excel 加载项的待处理状态

问题描述

因此,我们使用名为“Data Transfer Excel Add-In”的插件将 IBMi 系列中的数据直接导入电子表格。我经常这样做,我已经创建了宏来执行这个过程;但是,没有精细的宏观过程可以做到这一点。我已经进行了无数小时的研究,并尝试了 IBM 网页上关于创建 biff8 临时电子表格并将数据复制到剪贴板并将其作为最后一步导入的说明,但这并不是一个真正有效的解决方案,而且它有点对我的技能水平来说太复杂了。

由于缺乏可用的优雅解决方案,我采用了粗略的 sendkeys 方法来使用快捷方式手动访问功能区,而且效果非常好(我已经理解 sendkeys 的问题 - 作为最后的手段)。这可以解决我最初的问题,但是每当我这样做时,它必须在任何代码的末尾运行,因为之后的任何编码都会产生问题。因此,如果我尝试将查询导入到单元格 a5,然后在导入后移动到 sheet2,它将首先移动到 sheet2 并导入或有时根本不导入。我想知道是否有一种方法可以读取类似于 application.CalculationState 的应用程序状态,它适用于加载项。由于某种原因,计算状态不会使用此方法注册。我已经尝试过 application.wait ,这似乎并不重要,

如果有帮助,我会放置一个示例查询导入代码。我无法附上屏幕截图,但在导入查询后会弹出一个标题为“IBM i 访问数据传输”的弹出窗口,上面写着“正在从 IBM i 检索信息。请稍候......”

代码:

SendKeys "%x"    'brings up add-ins
SendKeys "r"     'selects add-in option
SendKeys "~"
SendKeys "~"
SendKeys "jplibr/gugmolist"  'types query library and name
SendKeys "~"
SendKeys "~"
SendKeys "~"
SendKeys "{NUMLOCK}"   'fixes stupid numlock/sendkeys glitch

我试过了:

如果 application.calculationstate = x1calculating 然后 Application.Wait (Now + TimeValue("0:00:01") ) 如果结束

也使用了 x1pending 没有成功

感谢您的帮助,如果这不是很简洁,请见谅

标签: excelvbaadd-in

解决方案


推荐阅读