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. См. снимки экрана:

введите формулустрелкарезультат преобразования градусов, минут и секунд в десятичные градусы

Связанные статьи