KutoolsforOffice — 一套方案,五大工具。事半功倍。

如何在 Excel 中将十进制度数转换为度分秒格式?

作者修改日期

有时,工作表中可能包含一列以十进制度数表示的数据,而您需要将其快速转换为度、分、秒格式(如下图所示)。如何在 Excel 中高效完成这一转换?

十进制度数据箭头度分秒数据

使用 VBA 将十进制度数转换为度分秒格式

使用 VBA 将度分秒格式转换为十进制度数


蓝色右向箭头气泡 使用 VBA 将十进制度数转换为度分秒格式

请按照以下步骤,使用 VBA 代码将十进制度数转换为度、分、秒格式。

1. 按住 ALT 键并按下 F11 键,即可打开 Microsoft Visual Basic for Applications 窗口。

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. 屏幕上将弹出一个对话框,供您选择要转换的单元格。如下图所示:

用于选择要转换的数据的 VBA 代码

5. 单击确定,所选数据即被转换为度、分、秒格式。参见下图:

原始数据箭头转换结果

提示:使用上述 VBA 代码将覆盖原始数据,建议运行前先备份数据!



蓝色右向箭头气泡 使用 VBA 将度分秒格式转换为十进制度数

有时,您可能需要将度/分/秒格式的数据快速转换为十进制度数,以下 VBA 代码可助您轻松实现这一操作。

1. 按住 ALT 键,再按下 F11 键,即可打开 Microsoft Visual Basic for Applications 窗口。

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 键。参见下图:

输入公式箭头将度分秒转换为十进制度的结果

相关文章