如何在Excel中将十进制度转换为分钟分秒?
作者:孙 最后修改时间:2024-08-07
有时,工作表中可能有以十进制度显示的数据列表,现在您需要将十进制度转换为度,分钟和秒格式,如以下屏幕截图所示,如何在Excel中快速进行对话?
使用VBA将十进制度数转换为度,分,秒
请按照以下步骤使用VBA代码将十进制度数转换为度,分和秒。
1.按住 ALT 按钮并按下 F11 在键盘上打开一个 Microsoft Visual Basic应用程序 窗口。
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。 点击 OK,然后将所选数据转换为度,分钟和秒。 看截图:
Tips::使用上述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.保存代码并关闭窗口,选择一个空白单元格,例如Cell A1,输入此公式 = ConvertDecimal(“ 10°27'36”“”) (“ 10°27'36”“”代表要转换为十进制的度,您可以根据需要进行更改),然后单击 输入 按钮。 查看屏幕截图: