zoukankan      html  css  js  c++  java
  • [VBA]用一个简单例子说明如何在Excel中自定义函数

    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] 阿喀琉斯之踵

    -----

    版权声明:本文由@我只是一小小鸟创作,采用“知识共享 署名-非商业性使用-禁止演绎 3.0 中国大陆 许可协议”进行许可。除非注明,均为原创文章,转载请注明:转载自这只是一小小鸟窝。本文地址: http://blog.sina.com.cn/s/blog_638f98570101fbqn.html

  • 相关阅读:
    Maven 基础
    Apache 免重启 刷新jsp
    【FeignClient证书】 忽略证书验证
    【转】MAC 配置ssh免密登录
    一次神奇的JVM调优
    Js 监听器
    Js 使用Map
    [leetcode]两数之和
    nginx在普通用户下的部署和安装
    oracle11G的linux下的离线安装教程
  • 原文地址:https://www.cnblogs.com/transteel/p/4186593.html
Copyright © 2011-2022 走看看