Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2649|回复: 4

[分享] 不加载分析工具库,单一调用其中函数 的方法(转帖)

[复制链接]
发表于 2015-10-28 09:43 | 显示全部楼层 |阅读模式
转自:http://club.excelhome.net/thread-364162-1-1.html



不加载分析工具库,单一调用其中函数 的方法
EXCEL 提供了“分析工具库”加载宏 里面有100多个函数,要使用这些函数,通常要进行手工加载
菜单栏 : 工具 --》 加载宏  在弹出的窗体里面 勾选 分析工具库 。
比如求最小公倍数(lcm)单元格里输入 =LCM(36,90,72) 可以得到 360
如果我只需要这一个函数 而又不想手工加载分析工具库,可以使用run 方法来单一调用 lcm函数
先看一下run的帮助
运行一个宏或者调用一个函数。该方法可用于运行用 Visual Basic 或 Microsoft Excel 宏语言编写的宏,或者运行 DLL 或 XLL 中的函数。
expression.Run(Macro, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9, Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, Arg20, Arg21, Arg22, Arg23, Arg24, Arg25, Arg26, Arg27, Arg28, Arg29, Arg30)
expression      必需。该表达式返回一个 Application 对象。
Macro      Variant 类型,可选。所要运行的宏。既可以是一个带有宏名的字符串,也可以是指示此函数所在位置的 Range 对象,或者是一个已注册的 DLL (XLL) 函数的注册号。如果使用字符串,将在当前工作表环境中对此字符串求值。
Arg1-Arg30      Variant 类型,可选。传递给函数的参数。

“一个已注册的 DLL (XLL) 函数的注册号”可以用宏表函数 REGISTER 来获取
而在VBA中运行 宏表函数 要用 ExecuteExcel4Macro 方法
  id = ExecuteExcel4Macro("REGISTER.ID(""" & Application.LibraryPath & "\Analysis\ANALYS32.XLL"",""lcm"")")  
注意 ""lcm""  此处的 lcm 为函数名,并区分大小写。
运行此代码后 即便没有加载“分析工具库”, 在单元格中已经可以使用 lcm函数
如要在VBA代码中使用
则加一句  
id = ExecuteExcel4Macro("REGISTER.ID(""" & Application.LibraryPath & "\Analysis\ANALYS32.XLL"",""lcm"")")  
x = run(id,36,90,72)  'x= 360
ANALYS32.XLL中的函数名称并非全部都是小写,而是大小写混杂。
在手工加载“分析工具库”后,运行以下过程可以得到真实的函数名。
Sub getfnNAME
theArray = Application.RegisteredFunctions
If IsNull(theArray) Then
    MsgBox "No registered functions"
Else
    For i = LBound(theArray) To UBound(theArray)
        For j = 1 To 3
            Worksheets("Sheet1").Cells(i, j). _
                Formula = theArray(i, j)
        Next j
    Next i
End If
End sub
这样就能实现对函数的 单一调用。


excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2015-10-28 18:52 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2015-10-28 19:16 | 显示全部楼层
hktkzyz 发表于 2015-10-28 18:52
这个网站好久都打不开了。http://club.excelhome.net

偶尔,访问比较慢。
不过,现在很正常。
回复

使用道具 举报

发表于 2015-10-29 08:21 | 显示全部楼层
我发现家里能上,其他网友也能上,就是单位都不能上,貌似被本地联通屏蔽了。http://www.xuepojie.com/forum.php这个论坛也是

点评

我这里能打打开‘学破解’  发表于 2015-10-29 08:54
回复

使用道具 举报

发表于 2015-10-29 15:57 | 显示全部楼层
嗯,是我这里的问题,目前还不知道出在哪里问题。只有这两个打不开。
tracert能通。nslookup能通。就是上不去。联通说他们没有问题。我也是醉了。不管了,大不了不上。大不了用vpn去。哈哈。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-6 13:28 , Processed in 0.608535 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表