Hoppa till huvudinnehåll

Hur konverterar man decimaler till grader minuter sekunder i Excel?

Författare: Sun Senast ändrad: 2024-08-07

Ibland kan du ha en lista med data som decimalgrader i ett kalkylblad, och nu måste du konvertera decimalgraderna till grader, minuter och sekunder som visas som följande skärmdumpar, hur kan du få konversationen snabbt i Excel?

data för decimalgrader pil grader minuter sekunder data

Konvertera decimalgrader till grader, minuter, sekunder med VBA

Konvertera grader, minuter, sekunder till decimaler med VBA


pil blå höger bubbla Konvertera decimalgrader till grader, minuter, sekunder med VBA

Följ stegen nedan för att konvertera decimalgrader till grader, minuter och sekunder med VBA-kod.

1. Håll ALT knappen och tryck på F11 på tangentbordet för att öppna en Microsoft Visual Basic för applikation fönster.

2. klick Insert > Modulernaoch kopiera VBA till modulen.

VBA: Konvertera decimalgrad till grad, minuter och sekunder

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. klick Körning knappen eller tryck på F5 att köra VBA.

4. En dialogruta visas på skärmen och du kan välja de celler du vill konvertera. Se skärmdump:

vba-kod för att välja data som ska konverteras

5. klick OK, sedan konverteras den valda informationen till grad, minuter och sekunder. Se skärmdump:

ursprungliga data pil konverterande resultat

Tips: Att använda ovanstående VBA-kod förlorar dina ursprungliga data, så du borde kopiera data innan du kör koden.



pil blå höger bubbla Konvertera grader, minuter, sekunder till decimaler med VBA

Ibland kanske du vill konvertera data i grader / minuter / sekunder formatering till decimalgrader, följande VBA-kod kan hjälpa dig att snabbt få det gjort.

1. Håll ALT-knappen och tryck på F11 på tangentbordet för att öppna ett Microsoft Visual Basic for Application-fönster.

2. klick Insert > Modulernaoch kopiera VBA till modulen.

VBA: Konvertera grad, minuter och sekunder till decimalgrad

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. Spara koden och stäng fönstret, välj en tom cell, till exempel Cell A1, ange denna formel = ConvertDecimal ("10 ° 27 '36" "") ("10 ° 27 '36" "" står för den grad du vill konvertera till decimalgrad, du kan ändra den efter behov), klicka sedan på ange knapp. Se skärmdumpar:

ange formeln pil resultatet av att konvertera grader, minuter, sekunder till decimalgrader

Relativa artiklar