CALL函数属于外部函数,外部函数的功能是从Excel以外的程序中提取数据,或进行欧洲货币的换算。
CALL函数可用于调用Windows动态链接库或代码源,该函数分为语法1、语法2a和语法2b这3种用法。下面将分别介绍。
语法1
CALL函数语法1必须与REGISTER函数配合使用,CALL函数的语法为:= CALL(register_id,argument1, …),各参数的语法介绍如下。
※ 参数register_id:为以前执行REGISTER函数或REGISTER.ID函数返回的值。
※ 参数argument1:为要传递给过程的参数。
假设注册32位Windows中的GetTickCount函数,并以毫秒为单位返回Windows的运行时间,具体操作如下。
01 在单元格中输入公式=REGISTER("Kernel32","GetTickCount","J")。
02 假设REGISTER函数在单元格A5中,在宏注册GetTickCount函数之后,可用CALL函数返回已经运行的毫秒数即可,函数公式为:=CALL(A5)。
语法2a
在Microsoft Excel for Windows中使用CALL函数,即语法2a,函数公式为:= CALL(module_text,procedure, type_text,argument1, …),各参数的含义介绍如下。
※ module_text:带引号的文本,用于指定动态链接库(DLL)的名称,该链接库包含Windows中的过程。
※ procedure:用于指定Windows的DLL中的函数名称的文本,还可以使用由模块定义文件(.DEF)中的EXPORTS语句为函数提供的顺序值。
※ type_text:指定返回值的数据类型以及DLL或代码源的所有参数的数据类型的文本,Type_text的第一个字母指定返回值。
※ argument1,…:为要传递给过程的参数。
在工作表中,可以使用CALL公式(语法2a)调用GetTickCount函数,函数公式为:=CALL("Kernel32","GetTickCount","J!")。
其中参数type_text中的“!”表示强制Microsoft Excel在每次重新计算工作表时都要重新计算CALL函数,这样只要重新计算工作表,运行的时间值都将得到更新。
语法2b
在Microsoft Excel for Macintosh中使用CALL函数,即语法2b,函数公式为:=CALL (file_text,resource,type_text, argument1,…),各参数的语法介绍如下。
※ file_text:包含Macintosh中代码源的文件的名称。
※ resource:Macintosh中代码源的名称,也可以使用资源ID号,资源ID号不可以为文本形式。
※ type_text:指定返回值的数据类型以及DLL或代码源的所有参数的数据类型的文本,Type_text的第一个字母指定返回值。
※ argument1,…:为要传递给过程的参数。