欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  Office

Excel如何自定义一个函数以便快速使用这个函数组合

程序员文章站 2022-06-26 10:53:24
Excel大约有500个函数,对于一般的办公场景而言,单独使用+组合使用能衍生出很多无数种函数,但是对于复杂的问题,往往函数十分复杂,不便于记忆。假如你经常使用这个...

Excel大约有500个函数,对于一般的办公场景而言,单独使用+组合使用能衍生出很多无数种函数,但是对于复杂的问题,往往函数十分复杂,不便于记忆。假如你经常使用这个函数组合,而又不想记住这些复杂的公式,你就需要自己发明一个函数了。

例如,要求地球上两个点的距离,函数组合是这样的:

Excel如何自定义一个函数以便快速使用这个函数组合

于是我们就在想,要是有个函数可以计算距离就好了,好吧,我们动手自定义一个函数吧。

第一步:打开一个空白文档

第二步:按键盘组合键“Alt+F11”或切换至“开发工具”功能区并点击“Visual Basic”按钮进入VBA环境。

Excel如何自定义一个函数以便快速使用这个函数组合

第三步:在VBA环境下,右击“Microsoft Excel对象”,从弹出的菜单中选择“插入”->“模块”项。

Excel如何自定义一个函数以便快速使用这个函数组合

第四步:编写代码

Excel如何自定义一个函数以便快速使用这个函数组合

Public Function Cal_Long_Lat(ByVal long1 AsDouble, ByVal lat1 As Double, ByVal long2 As Double, ByVal lat2 As Double) AsDouble

Const PI As Double = 3.1415926535

Dim AngleLong1, AngleLat1, AngleLong2, AngleLat2 As Double

AngleLong1 = long1 * PI / 180

AngleLat1 = lat1 * PI / 180

AngleLong2 = long2 * PI / 180

AngleLat2 = lat2 * PI / 180

Dim sinX, cosX As Double

sinX = Sin(AngleLat1) * Sin(AngleLat2)

cosX = Cos(AngleLat1) * Cos(AngleLat2) * Cos(AngleLong2 - AngleLong1)

x = sinX + cosX

On Error Resume Next

ax = Atn(-x / Sqr(-x * x + 1)) + 2 * Atn(1)

Cal_Long_Lat = 6378140 * ax

End Function

第五步:保存为xla文件

Excel如何自定义一个函数以便快速使用这个函数组合

假设,你将这个加载宏文件放在了D盘xla文件夹里

第六步:添加信任位置

为保证excel的运行安全,Excel默认只信任部分文件夹。添加后,excel就知道这个文件夹是安全的。

Excel如何自定义一个函数以便快速使用这个函数组合

第七步:添加加载项

Excel如何自定义一个函数以便快速使用这个函数组合

以后启动excel时,你编写的宏就可以默认被加载了。

此后,在excel中可以直接使用刚创建的函数。

Excel如何自定义一个函数以便快速使用这个函数组合

是不是特别简单?[白眼]我读书少,你不要骗我!