查无此鸟的博客 一个不误正业的交通工程师的个人网站

[新浪博客]用一个简单例子说明如何在Excel中自定义函数

标签:野生程序猿 | 发表时间:2013-10-15 23:51:18 | 更新时间: 2020-04-24 23:13:42 | 阅读数:210 | 评论数:0 | 字数:1067

本文2013-10-15 23:51:18首发于新浪博客,地址:http://blog.sina.com.cn/s/blog_638f98570101fbqn.html。

图片01

Excel中的函数无疑是强大的,但是再强大的战士也有他脆弱的脚后跟[1]。这两天在使用Excel的时候遇到了一个需求,要在某一个单元格里面自动计算今天是星期几(如显示 Today is Tuesday)。本来以为Excel会有相应的函数,但是找来找去也没有找到,只有WEEKDAY可以返回今天是本周的第几天,是个数字。于是写下了一个奇怪的公式 ="Today is "& WEEKDAY(TODAY(),2),计算结果是”Today is 2”。
这可真够2的!
遇到问题就要想办法解决,这次出手相救的是Excel的自定义函数功能,使用到的是老不死的VBA,看懂下面的内容要点儿编程知识。
Office 2010版及以后要在工具栏里面找到VBA(或称宏)比较点儿曲折,但使用快捷键Alt+F11能够直接调出VBA窗口,然后插入模块,就可以自定义函数了。
所谓的自定义函数其实就是写一个函数程序,比如上面提到的例子,我们可以写一个WEEKDAYNAME函数将WEEKDAY返回的值做进一步的转换:1转换成Moday,2转换成Tueday……直到7转换成Sunday。
这是一个很简单的函数,VB代码如下:
Function WEEKDAYNAME(W As Integer) As String Select Case W Case 1 WEEKDAYNAME = "Monday" Case 2 WEEKDAYNAME = "Tuesday" Case 3 WEEKDAYNAME = "Wednesday" Case 4 WEEKDAYNAME = "Thursday" Case 5 WEEKDAYNAME = "Friday" Case 6 WEEKDAYNAME = "Saturday" Case 7 WEEKDAYNAME = "Sunday" End Select End Function
函数代码写完以后,关闭VBA窗口,使用刚才自定义的WEEKDAYNAME函数在Excel单元格里面重写公式 ="Today is "&WEEKDAYNAME(WEEKDAY(TODAY(),2)),计算结果是“Today is Tuesday”,实现了最初的设想。

注:图片来源于网络。
[1] 阿喀琉斯之踵:http://baike.baidu.com/link?url=W6Z1RSSUJtjbPSQqB2J4EGLFj2K3l-2knVOIl2clb8Zk1sOy2DxqPLiwFyVFnW72 。

版权声明:本文由@查无此鸟创作,采用知识共享 署名-非商业性使用-禁止演绎 3.0 中国大陆许可协议进行许可。除非注明,均为原创文章,请在转载时注明来源,并完整保留本段声明。本文地址: http://liyonggang.net/blog.aspx?id= 2013-10-15



本文评论:
暂无评论……

发表评论:(昵称或评论内容不允许为空!邮箱可不填,但建议填写以备联系,邮箱将不显示在评论中。) 昵称 邮箱

查无此鸟的博客

Copyright©查无此鸟 2020~2022, All Rights Reserved

邮箱:t5lyg@126.com

其他链接

卢昌海的网站 | 鱼の后花园博客) | 新交通人的技术闲谈-知乎 | FROYOs Blog | 博客园 | 鸟哥Linux | 蜂鸟的小窝 | 大眼仔

AutoCAD.NET: Kevin K | 大非sb