excel - 即使调用的宏尚未完成,有没有办法让 VBScript 进一步工作?
问题描述
我从VBScript直接调用VBA Macro。VBA 宏引导用户弹出 Internet Explorer 窗口,用户需要输入其登录凭据。
我想要实现的是从这个弹出窗口的 HTML 中获取元素名称并将值插入到输入字段中。
得到弹出窗口后,VBScript直到我关闭相应的 excel 文件和弹出窗口后才能继续工作。我在互联网上寻找解决方案,但没有找到任何有用的东西。是否有任何解决方法可以让我暂停弹出窗口并让 VBScript 在弹出窗口中按 ID 获取元素?
这是我当前的 VBScript 代码 -
xlsm_file_name = "webADI_template_Bankbuchungen_GL.xlsm"
'opening xlsm file and setting readonly to false
set xlobj = createobject("Excel.Application")
xlobj.Visible = TRUE
xlobj.Workbooks.Open("webADI_template_Bankbuchungen_GL.xlsm")
xlobj.Application.Run "'webADI_template_Bankbuchungen_GL.xlsm'!Sheet1.BneUploadCommon"
' from this moment VBScript does not go further until I manually close the excel file
Set objIE = WScript.CreateObject ("InternetExplorer.Application")
objIE.Document.getElementsByName("unamebean")(0).value = "niko"
xlobj.quit
编辑:
我发现了导致 VBScript 停止的原因,而下一行不再继续。在 VBScript 中调用的宏涉及一个长期的数据积累过程,在函数和类之间切换。
所以在弹出窗口的那一刻,宏还没有完成,因为后面还有其他父进程在等待用户的输入。
我在论坛中发现,为了确保该过程在后台发生并且VBScript 更进一步,可以使用WshShell Run -也许一个明智的解决方案是从 Shell 调用宏?- 我没有设法找到这样做的方法。
即使调用的宏尚未完成,有没有办法让 VBScript 进一步工作?
解决方案
推荐阅读
- r - 使用分组计算累积值
- arduino - 在 Arduino Mega 中使用 Modbus RTU 从电能表读取数据
- android - 什么取代了权重?
- r - 将符号向量作为函数参数传递并转换为字符向量
- angular - 验证失败时,Div 中的 FormGroup 突出显示所有字段
- php - 使用 Ajax 请求过滤 WordPress 帖子
- .net - 使用 efcore 在 Cosmos db 上查询数据
- reactjs - ReactJS - 在 Google Map 的监听器中使用它
- javascript - 如何使用 react-responsive-carousel 垂直和水平(嵌套)移动 Carousel
- python - discord.py 模块中 MissingRequiredArgument 错误的解决方案是什么?