zoukankan      html  css  js  c++  java
  • 为什么用 AutoHotkey 而不是 VBA 来操作 Excel

    • 生效范围

      • VBA 作用范围当前文件,其他文件要用同功能 VBA,要重新复制代码部署
      • ☑ AutoHotkey 运行后,对任何 Excel 文件都可直接使用
    • 语法

      • VBA 语法陈旧,加上不熟悉,写起来很不友好
      • ☑ AutoHotkey 语法简单,写起来很方便
    • 代码管理

      • ☑ VBA 可以内置到 Excel 文件,对处理单文件功能来说,比较方便。文件多了,每个都要维护VBA代码,就很不方便了
      • AutoHotkey 需要单独运行程序,但代码可以统一维护,文件数多就更有优势了。
    • 执行功能

      • VBA 可以点击控件或简易热键执行
      • AutoHotkey 可以用自定义热键(自定义)或鼠标手势执行

    附上 AutoHotkey v2-beta 获取 xl 对象的函数

    ox(winTitle:="ahk_class XLMAIN") {
        if WinExist(winTitle)
            ctlID := ControlGetHwnd("EXCEL71")
        else
            return ComObject("Excel.application")
        numput('Int64',0x20400, 'Int64',0x46000000000000C0, IID_IDispatch:=buffer(16))
        dllcall("oleaccAccessibleObjectFromWindow", "ptr",ctlID, "uint",0xFFFFFFF0, "ptr",IID_IDispatch, "ptr*",win:=ComValue(9,0), 'HRESULT')
        loop {
            try
                return win.application
            catch
                ControlSend("{escape}", "EXCEL71")
        }
    }
    
  • 相关阅读:
    feign远程调用问题
    java8--stream
    feign业务组件远程请求 /oauth/token
    redis实现自增序列
    MySQL数据库 相关知识点
    netty
    spring的启动流程及bean的生命周期
    MethodHandleVS反射
    并发与并行
    关于注解的思考
  • 原文地址:https://www.cnblogs.com/hyaray/p/15489226.html
Copyright © 2011-2022 走看看