KutoolsforOffice — حل واحد، خمس أدوات قوية.تحقيق المزيد بجهد أقل.

كيف يمكن تحويل الدرجات العشرية إلى درجات ودقائق وثوانٍ في Excel؟

المؤلفصنتاريخ التعديل

قد تحتوي ورقة العمل أحيانًا على قائمة بيانات معروضة بالدرجات العشرية، وتحتاج الآن إلى تحويل هذه القيم بسرعة إلى تنسيق الدرجات والدقائق والثوانٍ كما يظهر في لقطات الشاشة التالية. فكيف يمكنك إنجاز هذا التحويل بسهولة في Excel؟

بيانات الدرجات العشريةسهمبيانات الدرجات والدقائق والثواني

تحويل الدرجات العشرية إلى درجات ودقائق وثوانٍ باستخدام VBA

تحويل الدرجات والدقائق والثوانٍ إلى درجات عشرية باستخدام VBA


فقاعة سهم أزرق متجه لليمين تحويل الدرجات العشرية إلى درجات ودقائق وثوانٍ باستخدام VBA

يرجى اتباع الخطوات أدناه لتحويل الدرجات العشرية إلى درجات ودقائق وثوانٍ باستخدام كود VBA.

1. اضغط مع الاستمرار على زرALT، ثم اضغط علىF11 في لوحة المفاتيح لفتح نافذةMicrosoft Visual Basic for Applications.

2. انقر فوقإدراج > وحدة نمطية (Module)، ثم الصق كود 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. انقر فوق زرتشغيل (Run)أو اضغط علىF5 لتشغيل كود VBA.

4. سيظهر مربع حوار على الشاشة، يتيح لك تحديد الخلايا التي ترغب في تحويلها. راجع لقطة الشاشة:

كود VBA لتحديد البيانات المراد تحويلها

5. انقر فوقموافق (OK)، ثم سيتم تحويل تحديد البيانات إلى درجات ودقائق وثوانٍ. راجع لقطة الشاشة:

البيانات الأصليةسهمنتيجة التحويل

تلميح: يؤدي استخدام كود VBA المذكور أعلاه إلى فقدان البيانات الأصلية، لذا يُفضَّل نسخها احتياطيًّا قبل تشغيل الكود.



فقاعة سهم أزرق متجه لليمين تحويل الدرجات والدقائق والثوانٍ إلى درجات عشرية باستخدام VBA

قد ترغب أحيانًا في تحويل البيانات المُنسَّقة بالدرجات/الدقائق/الثوانٍ إلى درجات عشرية، ويمكن لرمز VBA التالي مساعدتك في إنجاز هذه المهمة بسرعة.

1. اضغط مع الاستمرار على زرALT، ثم اضغط علىF11 في لوحة المفاتيح لفتح نافذة Microsoft Visual Basic for Applications.

2. انقر فوقإدراج>وحدة نمطية (Module)، ثم انسخ كود 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. راجع لقطات الشاشة:

إدخال الصيغةسهمنتيجة تحويل الدرجات والدقائق والثواني إلى درجات عشرية

مقالات ذات صلة