كيفية تحويل الدرجات العشرية إلى درجات ودقائق وثواني في Excel؟
أحيانًا، قد يكون لديك قائمة من البيانات تظهر كدرجات عشرية في ورقة العمل، والآن تحتاج إلى تحويل الدرجات العشرية إلى تنسيق الدرجات والدقائق والثواني كما هو موضح في لقطات الشاشة التالية، فكيف يمكنك إجراء هذا التحويل بسرعة في Excel؟
![]() | ![]() | ![]() |
تحويل الدرجات العشرية إلى درجات ودقائق وثواني باستخدام VBA
تحويل الدرجات والدقائق والثواني إلى درجات عشرية باستخدام VBA
تحويل الدرجات العشرية إلى درجات ودقائق وثواني باستخدام VBA
يرجى اتباع الخطوات أدناه لتحويل الدرجات العشرية إلى درجات ودقائق وثواني باستخدام كود VBA.
1. اضغط مع الاستمرار على زر ALT واضغط على F11 على لوحة المفاتيح لفتح نافذة Microsoft Visual Basic for Application.
2. انقر فوق إدراج > وحدة، ثم قم بنسخ كود 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. انقر فوق زر التشغيل أو اضغط على F5 لتشغيل كود VBA.
4. ستظهر نافذة حوار على الشاشة، ويمكنك تحديد الخلايا التي تريد تحويلها. شاهد لقطة الشاشة:
5. انقر فوق موافق، ثم يتم تحويل البيانات المحددة إلى درجات ودقائق وثواني. شاهد لقطة الشاشة:
![]() | ![]() | ![]() |
نصيحة: استخدام كود VBA أعلاه سيؤدي إلى فقدان بياناتك الأصلية، لذا يُفضل نسخ البيانات قبل تشغيل الكود.
تحويل الدرجات والدقائق والثواني إلى درجات عشرية باستخدام VBA
أحيانًا، قد ترغب في تحويل البيانات الموجودة بتنسيق الدرجات/الدقائق/الثواني إلى درجات عشرية، يمكن أن يساعدك الكود التالي VBA في تحقيق ذلك بسرعة.
1. اضغط مع الاستمرار على زر ALT واضغط على 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""" تمثل الدرجة التي تريد تحويلها إلى درجة عشرية، يمكنك تغييرها حسب الحاجة)، ثم انقر فوق زر الإدخال. شاهد لقطات الشاشة:
![]() | ![]() | ![]() |