我正在尝试创建一个打开Word并将文本输入其中的VBScript。
我的代码:
::Set wshshell = WScript.CreateObject("WScript.Shell")
::Set objShell = CreateObject("WScript.Shell")
::objShell.AppActivate "word"
::userProfilePath = objShell.ExpandEnvironmentStrings("%UserProfile%")
::WScript.Sleep 10000
::wshshell.SendKeys "Hello World!"
答案 0 :(得分:0)
也许令人惊讶的是,除非您实际上首先启动了该程序,否则无法与Word交互。作为documented,AppActivate
方法激活应用程序窗口,即将已经运行的应用程序的窗口带到前台。
以编程方式启动Word,使用以下内容:
Set wd = CreateObject("Word.Application")
wd.Visible = True
你可以open这样的文件:
Set doc = wd.Documents.Open("C:\path\to\your.docx")
或创建一个new文档,如下所示:
Set doc = wd.Documents.Add
例如,可以通过TypeText
方法输入文字:
doc.Selection.TypeText "some text"
Save这样的文件:
doc.Save
doc.Close
或like this(如果它是新文档,或者您想将其保存在不同的名称/路径下):
doc.SaveAs "C:\path\to\new.docx", 16
doc.Close
来自应用程序的Exit如下:
wd.Quit
NOT 使用SendKeys
进行任何操作。 EVER。 除非您被枪口逼迫,否则不会。
同时执行 NOT 编写Frankenscript,在同一文件中混合使用不同语言(如批处理和VBScript)。调试和维护是后方的痛苦。