Re: 新人求助,AHK中VBA方法中的参数不能运行问题

遇到了问题?请先进行搜索(中文和英文),然后在此提问

Moderators: tmplinshi, arcticir

windfire
Posts: 2
Joined: 30 Sep 2018, 06:56

新人求助,AHK中VBA方法中的参数不能运行问题

30 Sep 2018, 08:14

在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
请大神们指点一下,谢谢!
tmplinshi
Posts: 1604
Joined: 01 Oct 2013, 14:57

Re: 新人求助,AHK中VBA方法中的参数不能运行问题

01 Oct 2018, 01:58

调用 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)
windfire
Posts: 2
Joined: 30 Sep 2018, 06:56

Re: Re: 新人求助,AHK中VBA方法中的参数不能运行问题

01 Oct 2018, 04:50

以前做了一个Excel的小脚本,加点稀里糊涂的糊弄过去了,这回会了,哈哈,太感谢了!

Return to “请求帮助”

Who is online

Users browsing this forum: No registered users and 19 guests