其实之前还是没搞懂一些vba的方法,拿到ahk怎么用,今晚突然打通了任督二脉,一些想法发在社区里和老哥们讨论一些.
首先为什么vba的代码改成com对象的ahk代码让我觉得很恶心.
总结了一下,就是vba代码很多是宏录制的,然后vba还支持很多的写法,导致经常看到的代码都奇形怪状的不统一,尤其是move,copy这几个,网上的搜的写法各不相同
这里个人研究了很长一段时间后有一个总结,vba的代码调用方法的时候就是一个空格,然后写参数的名字然后:=参数的值,这样的写法,这里一定要分清参数的名字和参数的值,拿到ahk的只是参数的值,那个参数的名字其实不用管,拿到ahk里面也没用,因为ahk不支持这种传参的方法.
ahk支持的传参方法是一个括号,然后里面根据参数的位置依次写就行了,比如move方法,第一个参数是before第二个是after在vba里面就是写before:=xxxx就可以了,但是这种拿到ahk里面永远都没法运行成功的.在ahk里面得这么写
oe.Sheets("sheet1").Move(,oe.sheets("Sheet9"))
?总结写的很好,期待你的库,老外有个函数库你可以参考补充完善
感谢老哥鼓励,我搜搜看是什么库?不过水平有限,感觉现在只是达到了可以把认识的vba代码改写成用ahk的程度而已
机器上的office家庭版,一直找不到Excel.Application,用不了
可以先搞一个飞跃大佬的函数然后自己琢磨就快多了
你改成这个oe.Sheets(“sheet1”).Move(ComObjMissing(),oe.sheets(“Sheet9”)) 试试.