如何从Excel宏将多个变量传递给VBS发送密钥?

时间:2016-08-26 14:03:39

标签: excel vba vbscript sendkeys

所以我目前正在开发一个宏来检测Outlook中收到电子邮件的时间,获取发送信息并复制电子邮件内容。从这里我有一个excel电子表格设置来检查用户,如果它找到列出的用户我有一个sendkeys脚本来记录我们的帮助台系统中的作业。

我遇到的问题是将多个变量传递给我的sendkeys脚本。

以下是我如何从excel宏传递它:

strParam1 = AssystID 
strParam2 = Sheets("Ext Database").Range("G3").Value
strVBSPath = "C:\Scripts\testsofar.vbs"
Shell ("wscript.exe " & strVBSPath & " " & strParam1 & strParam2)

strParam1是数据库中的用户名(例如KIERANL),strParam2是我记录的项目类型(例如内部)。

我遇到的问题是从SendKeys脚本获取正确的输出。目前我正在使用该行:WshShell.SendKeys Wscript.Arguments(0) 我认为应该通过strParam1发送,但是当我传递多个值时,它正在组合它们,例如上面的示例,它将在一行上发送:KIERANLINTERNAL

我的问题是我究竟做错了什么?我看过这个页面: https://technet.microsoft.com/en-us/library/ee692833.aspx我无法确切地看到我的方法有什么问题。

1 个答案:

答案 0 :(得分:0)

我认为你所描述的问题是你传递的论点之间缺乏分离。

目前,您的命令在传递时看起来像

wscript.exe C:\Scripts\testsofar.vbs KIERANLINTERNAL

问题是当你想要这个

时,两个参数合并为一个
wscript.exe C:\Scripts\testsofar.vbs KIERANL, INTERNAL

要在代码中执行此操作,只需连接两个参数之间的逗号,如此

Shell ("wscript.exe " & strVBSPath & " " & strParam1 & ", " & strParam2)