كيفية تحويل الدرجات العشرية إلى درجات دقيقة ثانية في إكسيل؟
في بعض الأحيان ، قد يكون لديك قائمة بيانات تظهر كدرجات عشرية في ورقة عمل ، والآن تحتاج إلى تحويل الدرجات العشرية إلى تنسيق الدرجات والدقائق والثواني كما هو موضح في لقطات الشاشة التالية ، كيف يمكنك الحصول على المحادثة بسرعة في Excel؟
قم بتحويل الدرجات العشرية إلى درجات ودقائق وثواني باستخدام VBA
تحويل الدرجات والدقائق والثواني إلى درجات عشرية باستخدام VBA
قم بتحويل الدرجات العشرية إلى درجات ودقائق وثواني باستخدام VBA
يرجى اتباع الخطوات أدناه لتحويل الدرجات العشرية إلى درجات ودقائق وثواني باستخدام كود VBA.
1. معلق ALT زر واضغط F11 على لوحة المفاتيح لفتح ملف Microsoft Visual Basic للتطبيق نافذة.
2. انقر إدراج > وحدة، وانسخ 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. معلق ALزر T واضغط 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" "" هي الدرجة التي تريد تحويلها إلى درجة عشرية ، يمكنك تغييرها حسب حاجتك) ، ثم انقر فوق أدخل زر. انظر لقطات الشاشة: