Как преобразовать десятичные градусы в градусы, минуты и секунды в Excel?
Иногда у вас может быть список данных, отображаемых как десятичные градусы на листе, и теперь вам нужно преобразовать десятичные градусы в формат градусов, минут и секунд, как показано на следующих скриншотах. Как можно быстро выполнить это преобразование в Excel?
![]() | ![]() | ![]() |
Преобразование десятичных градусов в градусы, минуты, секунды с помощью VBA
Преобразование градусов, минут, секунд в десятичные градусы с помощью VBA
Преобразование десятичных градусов в градусы, минуты, секунды с помощью 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. Нажмите OK, затем выбранные данные будут преобразованы в градусы, минуты и секунды. См. скриншот:
![]() | ![]() | ![]() |
Совет: Использование вышеуказанного кода 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. См. скриншоты:
![]() | ![]() | ![]() |