如何在Excel中将十进制角度转换为度分秒?
Author: Sun Last Modified: 2025-05-07
有时,您可能会在工作表中看到以十进制度数显示的数据列表,现在您需要将这些十进制度数转换为度、分和秒的格式,如下图所示,如何在Excel中快速完成此转换呢?
![]() | ![]() | ![]() |
使用VBA将十进制度数转换为度、分、秒
请按照以下步骤使用VBA代码将十进制度数转换为度、分和秒。
1. 按住ALT键并在键盘上按 F11打开Microsoft Visual Basic for Application窗口。
2. 单击插入>模块,并将VBA代码复制到模块中。
VBA:将十进制度数转换为度、分和秒
Sub ConvertDegree()
'Update 20130815
Dim Rng As Range
Dim WorkRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
For Each Rng In WorkRng
num1 = Rng.Value
num2 = (num1 - Int(num1)) * 60
num3 = Format((num2 - Int(num2)) * 60, "00")
Rng.Value = Int(num1) & "°" & Int(num2) & "'" & Int(num3) & "''"
Next
End Sub
3. 单击“运行”按钮或按F5运行VBA代码。
4. 屏幕上会弹出一个对话框,您可以选择要转换的单元格。参见截图:
5. 单击“确定”,然后所选数据将被转换为度、分和秒。参见截图:
![]() | ![]() | ![]() |
提示:使用上述VBA代码将会丢失您的原始数据,因此最好在运行代码之前复制数据。
使用VBA将度、分、秒转换为十进制度数
有时,您可能希望将度/分/秒格式的数据转换为十进制度数,以下VBA代码可以帮助您快速完成此操作。
1. 按住 ALT键并在键盘上按F11打开Microsoft Visual Basic for Application窗口。
2. 单击“插入”>“模块”,并将VBA代码复制到模块中。
VBA:将度、分和秒转换为十进制度数
Function ConvertDecimal(pInput As String) As Double
'Updateby20140227
Dim xDeg As Double
Dim xMin As Double
Dim xSec As Double
xDeg = Val(Left(pInput, InStr(1, pInput, "°") - 1))
xMin = Val(Mid(pInput, InStr(1, pInput, "°") + 2, _
InStr(1, pInput, "'") - InStr(1, pInput, _
"°") - 2)) / 60
xSec = Val(Mid(pInput, InStr(1, pInput, "'") + _
2, Len(pInput) - InStr(1, pInput, "'") - 2)) _
/ 3600
ConvertDecimal = xDeg + xMin + xSec
End Function
3. 保存代码并关闭窗口,选择一个空白单元格,例如单元格A1,输入公式=ConvertDecimal("10° 27' 36""")("10° 27' 36"""表示要转换为十进制度数的角度,您可以根据需要更改它),然后单击“Enter”键。参见截图:
![]() | ![]() | ![]() |