在AHK中不能像在VBA中正常在方法的后面空格再参数赋值。把空格改成点能运行脚本,但有错误。
下例中是把剪贴板的内容无格式粘贴到新建WORD中,并以第一行内容做文件名保存。部分代码:
objWord := ComObjCreate("Word.Application")
objWord.Visible := true
objWord.Documents.add
Click
objWord.ActiveDocument.Range.PasteSpecial.DataType:=wdPasteText (PasteSpecial方法后面加点能运行脚本,并能进入Word粘贴(只是没有按预想的无格式粘贴,还在琢磨,也请顺便指点一下),PasteSpecial方法后面如是空格则不能运行脚本,报This line does not contain a recognized action.错误)
Send ^v
Sleep,500
objWord.Selection.GoTo What:=wdGoToLine, Which:=wdGoToFirst, Count:=1, Name:="" (GoTo方法后面加点能运行脚本,但是报0x80020006-未知名称 Specifically:What错误,GoTo方法后面如是空格则不能运行脚本,报This line does not contain a recognized action.错误)
objWord.Selection.EndKey.Unit:=wdLine, Extend:=wdExtend
请大神们指点一下,谢谢!
Re: 新人求助,AHK中VBA方法中的参数不能运行问题
Moderators: tmplinshi, arcticir
Re: 新人求助,AHK中VBA方法中的参数不能运行问题
调用 PasteSpecial 或其他任何方法需要加括号,然后参数要按顺序来。
wdPasteText 这样的常量要替换成对应的值。
参数顺序、常量值这些可以通过 Google 搜索。比如搜索 word PasteSpecial -> https://docs.microsoft.com/en-us/office ... stespecial
如果碰到有些常量没有在文档中列出,则可以这样搜索: wdExtend constant
另外碰到问题时可以先搜索论坛有没有对应的解决方案。比如在 Google 中搜索 site:autohotkey.com "PasteSpecial",你会看到已经有不少相关的讨论。
wdPasteText 这样的常量要替换成对应的值。
参数顺序、常量值这些可以通过 Google 搜索。比如搜索 word PasteSpecial -> https://docs.microsoft.com/en-us/office ... stespecial
如果碰到有些常量没有在文档中列出,则可以这样搜索: wdExtend constant
另外碰到问题时可以先搜索论坛有没有对应的解决方案。比如在 Google 中搜索 site:autohotkey.com "PasteSpecial",你会看到已经有不少相关的讨论。
Code: Select all
wdPasteText := 2
wdGoToLine := 3
wdGoToFirst := 1
wdLine := 5
wdExtend := 1
oWord := ComObjCreate("Word.Application")
oWord.Visible := true
oDoc := oWord.Documents.Add()
oDoc.Range.PasteSpecial(,,,, wdPasteText)
oWord.Selection.GoTo(wdGoToLine, wdGoToFirst)
oWord.Selection.EndKey(wdLine, wdExtend)
Re: 新人求助,AHK中VBA方法中的参数不能运行问题
重复回帖了..
Re: Re: 新人求助,AHK中VBA方法中的参数不能运行问题
以前做了一个Excel的小脚本,加点稀里糊涂的糊弄过去了,这回会了,哈哈,太感谢了!
Who is online
Users browsing this forum: No registered users and 21 guests