将VBS脚本转换为VBA并通过Excel执行

奇点20XX

我希望将VBScript转换为VBA并从Excel模块中运行它。过去,我已经将“ VB”翻译成与VBA相当的东西,但是这次我遇到了一些麻烦。我做了几次尝试(好的尝试可能很多)来尝试自己翻译这首歌,但没有成功。

然后,我搜索了Google,我在Google上找到的堆栈和其他论坛,但对我发现的一些示例却收效甚微。

是否可以从Excel模块执行以下操作?(作为附带说明,我尝试直接与应用程序进行交互。此脚本之外,还有其他模块,这些模块使用OLE Automation并引用适当的COM /库引用来执行此操作)。但是,该应用程序缺少大量文档,并且通过所述DLL提供给我的方法和属性非常有限。

因此,这是我的解决方法(尽管不是首选方法),尽管它看起来很糟糕,但似乎可行。我目前有一个运行VBScript的BAT文件,它很好用。现在,我只需要从模块中运行代码。我尝试将脚本作为对象插入并运行从Excel内部执行该脚本的宏,但是我得到了安全提示(而这些提示很不好玩)。

任何帮助是极大的赞赏!

Set WshShell = WScript.CreateObject("WScript.Shell")
WScript.Sleep 1000
WshShell.AppActivate "Average Terminal Emulator"
WScript.Sleep 1000
WshShell.SendKeys "%"
WshShell.SendKeys "I"
WshShell.SendKeys "Y"
WshShell.SendKeys "S"
WScript.Sleep 1000
WshShell.AppActivate "Average Terminal Emulator"
WScript.Sleep 1000
WshShell.SendKeys "0"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "M"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "C"
WshShell.SendKeys "{TAB}"
WScript.Sleep 1000
WshShell.SendKeys "{ENTER}"

SendKeys()并且AppActivate()是VBA固有的,因此您可以删除所有WshShell内容,包括CreateObject()创建它调用。

然后只需替换以下每个实例:

WScript.Sleep 1000

和:

Application.Wait Now() + TimeValue("00:00:01")

你应该没事的

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章