Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 4467|回复: 2

[分享] 角度度分秒转换成十进制VBA代码

[复制链接]
发表于 2013-5-3 14:52 | 显示全部楼层 |阅读模式
在编制测量各种计算程序时,必须将六十进制的度分秒转换为十进制的角度,或相反,编了几段VBA代码,供测量人员使用。
角度度分秒转换VBA.rar (8.6 KB, 下载次数: 50)
 楼主| 发表于 2013-5-3 14:54 | 显示全部楼层
  1. Public Function转换成十进制(x As Double) As Double'度分秒转换成十进制度
  2. On Error Resume Next
  3. Dim Ai As Double
  4. Dim Bi As Single
  5. Dim Ci As Single
  6. Dim Di As Double
  7. Dim Ei As Double
  8. Dim De As Double
  9. De = Abs(x)
  10. Ai = Int(De)
  11. Bi = (De - Ai) * 100
  12. Bi = Int(Bi)
  13. Ci = (De - Ai) * 10000 - 100 * Bi
  14. Di = Bi + Ci / 60
  15. Ei = Ai + Di / 60
  16. If x < 0 Then
  17.   转换成十进制= -Ei
  18. Else
  19.   转换成十进制= Ei
  20. End If
  21. End Function
复制代码
回复

使用道具 举报

 楼主| 发表于 2013-5-3 15:05 | 显示全部楼层
  1. Public Function 转换成度分秒(x) As String '十进制的度转换成度分秒
  2. Dim Ai As Single
  3. Dim Bi As Single
  4. Dim Ci As Single
  5. Dim De As Double
  6. Dim Ei As String
  7. De = Abs(x)
  8. Ai = Int(De)
  9. Bi = (De - Ai) * 60
  10. Bi = Int(Bi)
  11. Ci = Round(((De - Ai) * 60 - Bi) * 60, 2)
  12.   If InStr(CStr(Ci), ".") = 1 Then
  13.    Ei = "0" & CStr(Ci)
  14. Else
  15.    Ei = CStr(Ci)
  16. End If
  17. If x = "" Then
  18.   转换成度分秒 = ""
  19. ElseIf x < 0 Then
  20.   转换成度分秒 = "-" & Ai & "°" & Bi & "'" & Ei & """"
  21. Else
  22.   转换成度分秒 = Ai & "°" & Bi & "'" & Ei & """"
  23. End If
  24. End Function
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-6-1 06:12 , Processed in 0.182050 second(s), 6 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表