原创作者: 卢子1987 转自:Excel不加班
Text函数有百变神君,文本之王等称号,超牛逼。不过再牛逼的函数,也都会有缺陷。
超过15位字符,用Text函数处理就会出错,把超出的数字当0处理。先跟着卢子来看下实例。
Text:
=TEXT(A2,"000000 00000000 0000")
新版Text:
=Text1(A2)
新版Text,你应该是第一次看见,你的电脑目前是没有的。这个是2020/6/9这一天卢子开发出来的。
Excel内置函数很难完成的时候,可以自己开发函数,开发函数其实并不难,你也可以!
老方法,进入VBA的后台,插入一个模块。
在今天之前,我们看到的代码都是这种格式。
Sub Text1()
代码
End Sub
其实,还有另外一种形式。
Function Text1()
代码
End Function
下面这种形式,就是用来开发新函数用的。
先来回顾一下Excel的SUM函数。输入=,函数名称,()里面输入参数。
=SUM(A2:A5)
新版函数,卢子起名为Text1,()里面也只有一个参数,跟SUM函数很像。
在()里面输入一个参数,比如t。
代码就是要实现的功能,想实现跟Text一样的分隔效果,不过后面的0要正常显示。
在VBA中,Format的作用就跟Text一样,不过更加人性化。
中间的代码按照Text的写法操作。
Text1 = VBA.Format(t, "000000 00000000 0000")
好,这样就开发了一个新版Text。
回到Excel中,输入刚刚开发的函数,就可以了。
哈哈哈,开发新函数就这么简单。以后如果微软的函数不满足你,你就自己开发一个,没什么大不了的。
继续往下看,现在要开发一个从身份证提取生日的函数。
原来用Text函数。
=TEXT(MID(A2,7,8),"0-00-00")
刚刚说过,Format的作用就跟Text一样,其实VBA中也有Mid,也就是说直接照搬就行,把A2改成变量t就可以。
Function 生日(t)
生日 = VBA.Format(Mid(t, 7, 8), "0-00-00")
End Function
又开发了一个新函数,就这么简单。
回到Excel,看看新函数的效果。
自己开发的函数,可以起中文名称,这样就更容易理解。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.