大家好,欢迎来到IT知识分享网。
VBK=Vba+Ahk 操作excel,遇到重复性的操作,我们通常会用到VBA脚本,实现各种Office软件操作的自动化。我个人在熟悉Ahk脚本后,发现一些简单的操作,通过Ahk写代码,也很方便。我常把这两者结合,并称之为VBK。VBK并没有什么新的东西,就是通过AHK用com连接Excel,进而利用VBA的特性。本质上跟VBA本身是一样的效果,对于一些通用的操作或者常规性的操作,有时候ahk会显得灵活些。
今天,先讲一下最基础的,Ahk通过Com连接excel的方法(Com的基础知识推荐看看知乎上胡杨的文章,深入简出、通俗易懂)。这里就不做重复。
1、连接一个打开了的excel工作簿。
ox := ComObjActive("Excel.Application") ;后续的介绍中,我都会常用ox作为excel的对象名。
2、如果当前没有打开的Excel窗口,我们可以创建Com对象
ox := ComObjCreate("Excel.Application") ;创建一个新的Excel Application对象。
3、直接连接到excel文件,不在前台打开文件,进行一些操作,比如读取里面的内容等等。
ox:=ComObjget(Excel文件路径)
操作完成后,视情况可能需要退出excel进程,则可以用到下面的语句。
ox.quit ox:=""
下面给出三种情况的示例代码
1、当前打开了一个Excel工作簿,我们通过Ahk读取单元格 A1 的内容
F9:: ox := ComObjActive("Excel.Application") ;后续的介绍中,我都会常用ox作为excel的对象名。 MsgBox % ox.range("A1").text return
2、当前没有打开任何Excel文件,通过ahk创建一个excel文档,并将A1赋值13
ox := ComObjCreate("Excel.Application") ox.Workbooks.Add() ;创建一个新的工作簿 ox.visible:=true ;跟Winword一样,小技巧,强制显示。 ox.range("A1"):="13" return
3、前台不打开文档,读取某个excel文档内的单元格内容
文件路径:="c:\test\示例文档.xlsx" ox:=comobjget(文件路径) ;连接文档 MsgBox % ox.sheets(1).Range("A1").value ox:=""
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/65183.html