方位角计算公式怎样录入到excel(利用VBA给Excel或WPS表格添加自定义函数)
100次浏览
发布时间:2025-01-05 08:32:32
在Excel或WPS表格中要使用VBA需要先打开“开发工具”菜单,打开方式请在网上度一下:

在“自定义功能区”打开“开发工具”菜单
点击“开发工具”菜单,在“开发工具”工具栏上点击“VB编辑器”:

打开“VB编辑器”
在“VB编辑器”内添加一模块文件(名称任意),在代码区添加函数代码:

VB编辑器内添加模块并输入代码
如添加一个测量方位角计算的函数,代码如下:
Function Azimuth(Sx As Double, Sy As Double, Ex As Double, Ey As Double, Style As Integer) Dim DltX As Double, DltY As Double, A_tmp As Double, Pi As Double Pi = Atn(1) * 4 '定义PI值 DltX = Ex - Sx DltY = Ey - Sy + 1E-20 A_tmp = Pi * (1 - Sgn(DltY) / 2) - Atn(DltX / DltY) '计算方位角 A_tmp = A_tmp * 180 / Pi '转换为360进制角度 Azimuth = Deg2DMS(A_tmp, Style) End Function
这个函数中要用到一个格式转换函数:
'转换十进制角度为度分秒 'Style=-1为弧度格式 'Style=0为“DD MM SS”格式 'Style=1为“DD-MM-SS”格式 'Style=2为“DD°MMˊSS""”格式 'Style=其它值时返回十进制度值 Function Deg2DMS(DegValue As Double, Style As Integer) Dim tD As Integer, tM As Integer, tS As Double, tmp As Double, SignChar As String If Sgn(DegValue) = -1 Then SignChar = "-" Else SignChar = "" End If DegValue = Abs(DegValue) tD = Fix(DegValue) tmp = (DegValue - tD) * 60 tM = Fix(tmp) tmp = (tmp - tM) * 60 tS = Round(tmp, 1) '2016-12-27调整,避免出现60分、60秒的情况 If tS = 60 Then tM = tM + 1 tS = 0 End If If tM = 60 Then tD = tD + 1 tD = 0 End If Select Case Style Case -1 '返回弧度 If SignChar = "-" Then Deg2DMS = -DegValue * Atn(1) * 4 / 180 Else Deg2DMS = DegValue * Atn(1) * 4 / 180 End If Case 0 Deg2DMS = SignChar & tD & " " & Format(tM, "00") & " " & Format(tS, "00.0") Case 1 Deg2DMS = SignChar & tD & "-" & Format(tM, "00") & "-" & Format(tS, "00.0") Case 2 Deg2DMS = SignChar & tD & "°" & Format(tM, "00") & "ˊ" & Format(tS, "00.0") & """" Case Else If SignChar = "-" Then Deg2DMS = -DegValue Else Deg2DMS = DegValue End If End Select End Function
使用效果如Excel或WPS表格内部函数一样:

输入函数前两个字母时会提示函数名

按提示输入值

计算结果
将此表格保存或另存为模板即可,也可将模块文件导出,在其它表格中导入就可使用。
相关文章
-
白天搬砖晚上码字,50多岁农民工在今日头条重拾写作梦想
2025-06-16 16:29:00 -
政企联动筑牢燃气安全防线 南阳开展夏季燃气安全大排查
2025-06-16 16:17:00 -
郭东社区开展“618网购节”主题防诈骗宣传活动
2025-06-16 15:02:00 -
00后女孩跟着父亲淘粪:曾月薪5万,深夜突然崩溃后辞职
2025-06-16 14:48:00 -
吕梁:老旧小区改造更换窗户是否有补贴?官方回复
2025-06-16 14:34:00 -
警惕!身上长了这种“小凸起”,千万别随便抠!
2025-06-16 14:15:00