在Excel里编VBA时,如何调用其他加载宏里的函数计算?

在热力计算中,经常用到水蒸汽性质的加载宏(waspcn.xll),单独在Excel表格里运用没问题。但我想在VBA里编程,编程时要用waspcn.xll查水性质(比焓等),尝试好几种方法都出错。具体如下(附图):a3 = Application.Run("C:\Program Files\Microsoft Office\waspcn.xll!H_PT67", a1, a2)。其中a3是要求解的水比焓值,a1、a2分别是水的压力、温度。网上很多人说在宏设置里,我试了没用。大神你在哪?求教…

本示例示范如何调用宏表“Mycustom.xlm”( 必须先打开此宏表 〕中定义的宏函数 My_Func_Sum。此函数带两个数值型参数(此例中为 1 和
5)。
mySum = Application.Run("MYCUSTOM.XLM!My_Func_Sum", 1, 5)
MsgBox "Macro result: " & mySum

注意括号里面的文字:必须先打开此宏表,这意味着在使用“Mycustom.xlm"中定义的宏函数My_Func_Sum之前,需要先把Mycustom.xlm打开追问

打开宏表是指什么?我的Excel加载了这个宏,而且在Excel表格里可以用,这算打开了吗?

追答

用这句试试:a3 = Application.Run("waspcn.xll!H_PT67", a1, a2)

追问

感谢ydnmc2011的给力帮助,最后解决了问题,利用a3=application.run("H_PT67",a1,a2)即可。thank you!!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-01-26
调用函数可以这写:Run (工作簿名!宏名,参数1,参数2……)
例如调用A1.xls文件里宏名称为ABC的宏,假定宏参数为1和5,代码为:Run ("A1.xls!ABC",1,5)。注意被调用宏的文件(A1.xls)要处于打开状态。
因此上面这句可以试试这么写:a3 = Application.Run("waspcn.xll!H_PT67", a1, a2)
第2个回答  2016-01-15
很简单:Run (工作簿名!宏名,参数1,参数2……)

例如调用A1.xls文件里宏名称为ABC的宏,假定宏没有参数,代码为:Run "A1.xls!ABC"
因为不需要返回值,括号省略。注意被调用宏的文件(A1.xls)要处于打开状态。
第3个回答  2015-12-24
直接使用call调用就好。因为所有的宏都有都在模块里面。在程序中需要调用直接输入宏名就好了。
第4个回答  2015-12-08
Funcation Test()
End Function

'引用
call Test