Jak przekonwertować stopnie dziesiętne na stopnie, minuty i sekundy w programie Excel?
Czasami możesz mieć listę danych wyświetlanych jako stopnie dziesiętne w arkuszu, a teraz musisz przekonwertować stopnie dziesiętne na formatowanie stopni, minut i sekund, jak pokazano na poniższych zrzutach ekranu, jak możesz szybko uzyskać rozmowę w programie Excel?
Konwertuj stopnie dziesiętne na stopnie, minuty i sekundy za pomocą VBA
Konwertuj stopnie, minuty, sekundy na stopnie dziesiętne za pomocą VBA
Konwertuj stopnie dziesiętne na stopnie, minuty i sekundy za pomocą VBA
Wykonaj poniższe czynności, aby przekonwertować stopnie dziesiętne na stopnie, minuty i sekundy za pomocą kodu VBA.
1. Utrzymać ALT i naciśnij F11 na klawiaturze, aby otworzyć plik Microsoft Visual Basic dla aplikacji okno.
2. kliknij wstawka > Modułi skopiuj VBA do modułu.
VBA: Konwertuj stopnie dziesiętne na stopnie, minuty i sekundy
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. kliknij run lub naciśnij F5 do uruchomienia VBA.
4. Na ekranie pojawi się okno dialogowe, w którym możesz wybrać komórki, które chcesz przekonwertować. Zobacz zrzut ekranu:
5. kliknij OK, następnie wybrane dane są konwertowane na stopnie, minuty i sekundy. Zobacz zrzut ekranu:
Wskazówka: Użycie powyższego kodu VBA spowoduje utratę oryginalnych danych, więc lepiej skopiuj dane przed uruchomieniem kodu.
Konwertuj stopnie, minuty, sekundy na stopnie dziesiętne za pomocą VBA
Czasami możesz chcieć przekonwertować dane w formacie stopni / minut / sekund na stopnie dziesiętne, poniższy kod VBA może pomóc w szybkim wykonaniu tego.
1. Utrzymać ALPrzycisk T i naciśnij F11 na klawiaturze, aby otworzyć okno Microsoft Visual Basic for Application.
2. kliknij wstawka > Modułi skopiuj VBA do modułu.
VBA: Konwertuj stopnie, minuty i sekundy na stopnie dziesiętne
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. Zapisz kod i zamknij okno, wybierz pustą komórkę, na przykład Komórka A1, wprowadź tę formułę = ConvertDecimal ("10 ° 27 '36" "") ("10 ° 27 '36" "" oznacza stopień, który chcesz przeliczyć na stopnie dziesiętne, możesz go zmienić według potrzeb), a następnie kliknij Wchodzę przycisk. Zobacz zrzuty ekranu: