`
taowen
  • 浏览: 193298 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

茴香豆的“茴”字有三种写法

阅读更多
我要讲的这个“茴”字是什么呢?其实是excel的用户自定义函数(udf)。
excel从4.0开始提供了第一种添加udf的方式:XLL。这个本质上是一个DLL。但是只要这个DLL暴露了excel规定的一些函数,并暴露出来,再把xll注册到excel就能让excel把你写的udf添加进去了。
后来excel又支持了vba。这个时候臭名远扬的“宏”就出现了。在excel中,用vba写的sub(没有返回值的函数)被称作宏,而function(有返回值的函数)可以被用作udf。所以“茴”字的第二种写法是vba。一个变种是把vba做成XLA文件,然后注册。包装成XLA之后,就可以把udf分发了,不然则和具体的电子表格文件绑定。
在excel 2002的时候,excel又支持了第三种写法。从这个版本开始,excel开始支持把COM对象的public方法用作udf(称作Automation Addin)。只要两个条件,一个是COM对象被注册了,第二个是把在excel中注册这个COM对象。
实际上,还不止这三种写法。在excel 2007中又添加了excel service,允许远程的服务被当作udf来使用。不过由于没有对此研究过,所以姑且只论这三种吧。下面,来分析一下各自的优劣和试用场合,以及一些需要特别注意的地方。

XLL
优势:直接用C写,操作底层对象,速度快。提供了官方的注册到函数列表的方式,可以提供详细的用法描述。
缺点:编写与维护都困难
适用场合:计算量大的功能(比如复杂的插值算法,期权价格计算)

VBA
优势:用户可以自己编写,语言写法相对简单。
劣势:速度比XLL慢得多。无法注册到函数列表(有非官方的破解方式)。是宏,需要设置excel的安全选项。
使用场合:真正的”用户“自定义函数。

Automation Addin
优势:可以用任意支持COM语言来写。维护性最好(可以拿高级的IDE,高级的编程方式来写)。
劣势:速度最慢(与COM对象的互操作耗费时间)。不但无法注册到函数列表,甚至无法自动载入(用户不操作UI,就不会载入)。
使用场合:大型的项目,速度不敏感。
提示:
让其自动载入的办法的非官方破解是Insert->Functions...,然后关闭打开的窗口。此时就载入了。
要获得Application对象,请实现IDTExtensibility2接口。
分享到:
评论

相关推荐

    android listview优化几种写法详细介绍

    这篇文章只是总结下getView里面优化视图的几种写法,就像孔乙己写茴香豆的茴字的几种写法一样,高手勿喷,勿笑,只是拿出来分享,有错误的地方欢迎大家指正,谢谢。 listview ...

    C语言概念题大全及详细解答(经典)

    还不如去学茴香豆的茴字有几种写法 好好的一门手艺, 给糟践成这样了 估计也就本三学校会用这种试题,专科的嫌它浪费时间,职技的嫌没用 原帖在这: 【专题】下载频道分享季:135个经典资源大汇展 ...

    spring 整合 quartz|| timer

    茴香豆的“茴”有几种写法? spring 整合 quartz|| timer有几种方式? 我收集的:《spring定时Timer&Quartz》 代码示例,依赖spring2.x.jar quartz1.6.x.jar 相关介绍: ...

    辽宁省灯塔市第二初级中学九年级语文下册 第5课 孔乙己(第2课时)导学案(无答案) 新人教版

    孔乙己的口头禅“茴香豆的茴字有四种写法”既体现了他的迂腐,也讽刺了封建科举制度对人的异化。 5. **写作手法**:全文采用对比和讽刺的手法,如孔乙己的高傲与他的贫穷形成鲜明对比,众人的嘲笑与孔乙己的自尊心...

    九年级语文下册 5 孔乙己课件6 新人教版

    他的语言充满了迂腐和自欺,如他对茴香豆的执着和对“茴”字四种写法的炫耀。他的善良体现在他给孩子们分茴香豆和他被欺负后的忍耐,但这些并未得到人们的理解和同情。 小说通过孔乙己的遭遇,展示了封建社会对失败...

    九年级语文下册 5 孔乙己课件8 新人教版

    他对“茴”字的多种写法的炫耀,既表现出他对知识的执着,也暴露出他无法适应现实生活的无奈。他的懒散和自我炫耀,使他在社会中处于边缘地位,被人嘲笑,却也显示出他对自我价值的坚守。 酒在孔乙己生活中占据重要...

    算法面试通关手写代码40讲 .txt

    面试题:N皇后问题的另一种解法.mp4 41 .面试题:2的幂次方问题&比特位计数问题.mp4 40.面试题:统计位1的个数.mp4 39.理论讲解:位运算.mp4 38.面试题:二维网格中的单词搜索问题.mp4 37.面试题:实现一个字典树....

    ssh脚本,ssh脚本,ssh脚本

    SSH(Secure Shell)是一种网络协议,用于在不安全的网络环境中提供安全的远程登录和其他服务。SSH脚本是利用SSH协议进行自动化任务执行的一种方式,它允许用户预先定义一系列命令,通过一个脚本来批量执行,极大地...

    netty源码深入剖析.txt

    《Netty源码深入剖析》一书旨在帮助读者深入了解...通过以上内容的学习,相信读者对Netty有了更加深入的理解,并能够在实际工作中运用这些知识来提升项目的性能和稳定性。希望本书能够成为大家学习Netty的最佳指南!

    尚硅谷springcloud视频

    Hystrix 是一个延迟和容错库,旨在隔离远程系统、服务和第三方库的访问点,当这些点出现故障时停止它们之间出现级联故障。通过 Hystrix,可以实现服务间的熔断、降级等策略,增强系统的稳定性和健壮性。 #### 4. ...

    行测精品资料学习资料.zip

    行测精品资料

    (MemoryAnalyzer)MAT.txt

    内存泄露分心工具MemoryAnalyzer 内存泄露分心工具MAT 亲测好用

    jvm、tomcat、mysql调优.txt

    1 什么是性能优化\ 2 性能测试与优化\ 3 性能优化JVM篇\ 4 性能优化Tomcat篇\ 5 性能优化mysql篇\

Global site tag (gtag.js) - Google Analytics