Hur konverterar man decimaler till grader minuter sekunder i Excel?
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?
Konvertera decimalgrader till grader, minuter, sekunder med VBA
Konvertera grader, minuter, sekunder till decimaler med VBA
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:
5. klick OK, sedan konverteras den valda informationen till grad, minuter och sekunder. Se skärmdump:
Tips: Att använda ovanstående VBA-kod förlorar dina ursprungliga data, så du borde kopiera data innan du kör koden.
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: