百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

aardio + VBA ( Excel ) 快速开发,3 分钟可入门

liuian 2025-06-13 14:49 37 浏览

aardio 很小,下载就可以使用,没有任何复杂步骤。

aardio 与 Excel VBA (兼容 WPS JSA )可以相互调用函数,不需要任何复杂的封装。

3 分钟够用,下面开始:

一、aardio 调用 VBA 函数

直接看 aardio 代码:

import com.excel; 

//打开 Excel 宏文件 。
var xl = com.excel("/vba.xlsm");

//自由调用任意 VBA 函数。
var data = xl.vba.GetSheetData();

上面的 GetSheetData 可以换为任意 VBA 函数名,可以传参数,获取返回值。

用 Excel 打开 xlsm 文件,按 Alt + F11 就可以打开 VBA 编辑器,插入一个新模块就可以写 VBA 函数了。

aardio 自带示例可以找到 vba.xlsm,路径:

范例 / 调用其他语言 / VBA / vba.xlsm 

二、VBA 调用 aardio 函数

VBA 里也可以方便地调用 aardio 对象或函数。

先看 VBA 代码:

Public Sub CallAnyting(ByVal aardioObject As Object)
    aardioObject.Log ("这是来自 VBA 的参数。")
End Sub

再看 aardio 代码:

import com.excel; 
var xl = com.excel("/vba.xlsm");

//可以传任意对象给 VBA
var external = {
    
    //aardio 函数被 VBA 调用了
    Log = function(str){
        import console.int;
        console.log("VBA调用任意 aardio 函数,参数:",str)
    }   
}

//aardio 调用 VBA 函数
xl.vba.CallAnyting( external );

三、aardio + VBA + .NET

有趣的是,aardio 与很多编程语言都有良好的兼容性。

例如复杂的数据从 VBA 传到 aardio ,再从 aardio 传到 .NET ,都可以自动兼容,不需要复杂的封装或转换。

下面我们用 aardio 调用 VBA 获取 Excel 表格的所有数据。

然后 aardio 再将数据传给 .NET 表格控件 ReoGrid 并显示在窗口上。

全部代码也只有几句:

import win.ui;
var winform = win.form(text="ReoGrid");
 
//加载强大的 GeoGrid 表格
import dotNet.ReoGrid;  
var grid = ReoGrid.ReoGridControl(winform); 
var sheet1 = grid.CurrentWorksheet;

//加载 Excel 文件。
import com.excel;
var xl = com.excel("\vba.xlsm");

/*
VBA 获取数据,
然后加载到表格控件。
*/
sheet1["A1:D3"] = xl.vba.GetSheetData();
 
//显示窗口界面
winform.show();
win.loopMessage();

vba.xlsm 里的 VBA 代码如下:

 Function GetSheetData() As Variant
    Dim dataArr As Variant
    Dim lastRow As Long
    Dim lastCol As Long
    Dim rng As Range
    Dim i As Long, j As Long
    
    lastRow = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    lastCol = Cells.Find("*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column

    Set rng = Range(Cells(1, 1), Cells(lastRow, lastCol))
    dataArr = rng.Value

    GetSheetData = dataArr
End Function

Public Sub CallAnyting(ByVal dispatchObject As Object)
    dispatchObject.Log ("这是来自 VBA 的参数。")
End Sub

以上代码自动兼容 WPS JSA 环境。

aardio 调用 JSA 与调用 VBA 的代码没有任何区别,自动兼容。

唯一要注意的是,JSA 调用 aardio 对象的成员函数要通过 Invoke 函数,例如前面的 VBA 代码翻译为 JSA 代码:

function CallAnyting(aardioObject) { 
 
 	//调用 aardio 函数,参数 @1 为函数名,后面为其他调用参数。
	aardioObject.Invoke("Log","这是来自 JSA 的参数。"); 
	
	//如果 aardioObject 是函数对象,则可以直接调用
	//aardioObject("其他调用参数");
}

更多其他编程语言请参考 aardio 自带范例:

aardio 自带 自带 C语言、C++、C#、Python、Java、JavaScript、R语言、Julia、Fortan、PowerShell、VB、VBScript、批处理、VBA、FreeBASIC、PHP、Ruby、Delphi、Node.js、Go 语言 等交互范例。

扩展库里还能找到更多。

相关推荐

office 2010怎么激活(office 2010如何激活)

 1.打开下载好的Office,点击左上角的“文件”,然后在下拉菜单上点击“帮助”,显示需要激活Office。?  2.找到解压缩好的安装文件,打开里面的“激活破解”文件夹。?  3.在文件夹中运行激...

笔记本xp系统忘记开机密码(笔记本xp开机密码忘了怎么办最简单的方法)

xp系统忘记开机密码解锁方法如下1、在需要破解开机密码的xp电脑上插入pe启动盘,启动电脑后不停按F12、F11、Esc等快捷键,在弹出的启动菜单选择框中选择识别到的usb启动项,比如General...

新风系统安装示意图(新风系统安装效果图)
  • 新风系统安装示意图(新风系统安装效果图)
  • 新风系统安装示意图(新风系统安装效果图)
  • 新风系统安装示意图(新风系统安装效果图)
  • 新风系统安装示意图(新风系统安装效果图)
isofix接口(isofix接口怎么拆卸)

isofix接口上有isofix的字样,它的图标是一个类似人坐在座椅上。在汽车座椅靠垫与坐垫之间的连接处有2个接口,那就是isofix接口,是一种硬连接方式,为了防止撞击时发生座椅翻转,一些座椅在IS...

无线路由器怎么设置不让别人连接

要设置无线路由器不让别人连接,可以采取以下措施:1.配置路由器密码:在路由器设置中,可以设置密码,限制只有授權的人才能连接到网络。2.配置防火墙:可以安装防火墙软件,如OpenDNS,限制...

fast迅捷路由器(fast迅捷路由器配置上网教程)

http://www.fastcom.com.cn/上面这个就迅捷官网的网址老版本的迅捷路由器默认登录地址为“192.168.1.1”,新版本的迅捷路由器默认登录地址为“falogin.cn”。02...

手机天梯图2025最新版(手机天梯图cpu2020快科技)

一般情况下而言,手机处理器的性能越强,功耗也就越高。有网友制作了一张手机处理器功耗排名图,高通骁龙888位8.34W,是榜单中功耗第二的处理器。而海思麒麟9000则位列第三,功耗为8.3W。一般情况下...

pe系统下载官网手机版(pe系统之家)

打开手机应用商店,选择windowspe,下载安装PE系统是一种维护用的系统,本身是很简陋的,什么常用功能都没有,后经一些爱好都修改、完善,现在成为可当临时系统用的精简系统。但PE系统当前种类很多,...

云骑士装机大师怎么激活win7

回答如下:要激活Windows7操作系统,您可以按照以下步骤进行操作:1.确保您的计算机已连接到互联网。2.打开“开始”菜单,点击“计算机”右键,选择“属性”。3.在系统属性窗口中,向下滚动到...

vmware workstation使用教程

VMwareWorkstation15是一款虚拟机软件,可以在主机上模拟多个虚拟计算机环境。以下是使用VMwareWorkstation15的基本步骤:1.下载和安装软件:从VMware官方...

windows7旗舰版64位多少钱(windows7旗舰版64位多少钱合适)

这两个都是64位的,唯一区别是后者集成SP1。win7旗舰版64位玉米系统比较稳定,不但稳定,运行速度也很快!WIN764位系统需要的电脑配置。最低配置CPU:1GHz32位或2G...

电脑黑屏了怎么重装系统(电脑黑屏怎么重装系统win10)

我觉着吧,题主的判断可能是不正确的黑屏开不了机指的是开机后显示屏无任何信号接入首先从电源出发,电源的cpu供电,主板供电,显卡供电,硬盘供电,每一项都要确保接触完整再到主板,主板上呢,cpu散热必须接...

三星官网正品查询(三星全新正品查询网站)

三星服务中心地址:http://support-cn.samsung.com/support/ServiceLocations.asp国家工信部电信设备进网管理网站查询移动设备真伪方式:方法一:网站查...

显示windows许可证即将过期

电脑提示Windows许可证即将到期,可以采取以下措施:检查许可证状态:首先需要确认许可证是否真的即将过期。可以在Windows设置中查看许可证状态,或者运行命令“slmgr/xpr”来检查许可证到...

u盘看不到第二个分区(u盘不显示第二个分区)

u盘分区后不显示出来原因一般为以下三种:第一种情况:对于windows系统是只能识别U盘分区的。第二种情况:关于U盘的diskgenius分区是只能看到一个分区的第三种情况:这个U盘分区已经被隐藏了,...