كيفية تحويل سلسلة إلى رقم في Excel VBA (3 طرق)

Hugh West

في هذه المقالة ، سنناقش عدة طرق لتحويل سلسلة إلى رقم في Excel VBA. سنرى كيفية استخدام الوظائف المضمنة وإنشاء وظيفة مخصصة باستخدامها لتحويل سلسلة إلى رقم باستخدام أمثلة رموز VBA.

تنزيل Practice Workbook

قم بتنزيل مصنف التدريب هذا للتمرين أثناء قراءة هذه المقالة.

تحويل السلسلة إلى رقم. xlsm

3 طرق لتحويل السلسلة إلى رقم في Excel VBA

1. تحويل السلسلة إلى رقم باستخدام وظائف تحويل النوع

يوفر Excel العديد من وظائف تحويل النوع المضمنة . يمكننا استخدامها في كود VBA الخاص بنا للتحويل بسهولة من نوع بيانات السلسلة إلى أنواع بيانات مختلفة.

1.1 سلسلة إلى عدد صحيح

لتحويل سلسلة إلى عدد صحيح ، يمكننا استخدام دالة CInt في الكود الخاص بنا. تأخذ الدالة CInt وسيطة واحدة ويجب أن تكون قيمة رقمية . لنجرب الكود التالي في محرر التعليمات البرمجية المرئي.

5568

اضغط على F5 إلى تشغيل كود . يظهر الإخراج في MsgBox .

تحويل الدالة CInt السلسلة الرقمية القيمة ("12.3" ) إلى عدد صحيح 12.

لفهم المزيد حول دالة CInt ، قم بتشغيل ما يلي الكود في محرر الكود و لاحظ النتائج .

Sub StringToNumber() For i = 3 To 9 Cells(i, 3).Value = CLng(Cells(i, 2)) Next End Sub

الإخراج موجود هنا فيالتالي لقطة شاشة .

شرح الكود

في هذا الكود ، استخدمنا لـ… الحلقة التالية لتطبيق دالة CInt على سلاسل الخلايا B3: B7. تتم طباعة المخرجات في الخلايا C3: C7. استخدمنا وظيفة الخلايا لتحديد قيم الإدخال ومكان طباعة قيم الإخراج.

النتائج

وظيفة CInt حول 25.5 إلى الرقم الصحيح التالي 26 . من ناحية أخرى ، تم تحويل 10.3 إلى 10 ، وليس 11 . عندما تكون القيمة العددية العشرية أقل من .5 ، يتم تقريب الدالة لأسفل إلى نفس الرقم. لكن قيمة السلسلة الرقمية العشرية تتحول إلى العدد الصحيح التالي إذا كان يساوي أو أكبر من .5.

ملاحظة

قيمة العدد الصحيح لها نطاق بين -32،768 إلى 32،767 . إذا وضعنا قيمة رقمية هي خارج هذا النطاق ، فسيعرض Excel خطأ .

1.2 String to Long

تحول الدالة CLng قيمة سلسلة رقمية إلى نوع بيانات طويل . وهي تعمل بشكل مشابه لوظيفة CInt. يكمن الاختلاف الرئيسي في النطاق والذي يقع بين -2،147،483،648 و 2،147،483،647.

The code to run is here below:8541

هنا ، الخلايا B3: B9 تحتوي على بعض قيمة السلسلة الرقمية ، و المحولة l أرقام ong موجودة في الخلايا C3: C9. تم تحويل وظيفة CLng -32800 و 32800 نجح في الأرقام الطويلة والتي لا تستطيع الدالة CInt القيام بذلك. ولكن سيحصل أيضًا على خطأ إذا كان الإدخال القيمة الرقمية خارج النطاق.

1.3 سلسلة إلى عشري

باستخدام وظيفة CDec يمكننا التحويل قيمة سلسلة عددية إلى نوع بيانات عشري . قم بتشغيل الكود التالي إلى تحويل القيم الرقمية في الخلايا B3: B7 إلى نوع البيانات العشري.

8301

1.4 String to Single

في هذا المثال ، سنحول سلاسل الإدخال إلى نوع بيانات فردي (مفرد -دقة النقطة العائمة) الأرقام. لهذا ، نحتاج إلى استخدام وظيفة CSng .

نطاقات نوع البيانات المفردة- (i) -3.402823E38 إلى -1.401298E-45 للأرقام السالبة .

(ii) 1.401298E-45 إلى 3.402823E38 لـ أرقام موجبة .

قم بتشغيل الكود التالي في محرر Visual basic.

1681

في الإخراج ، الخلايا B3: B9 تحتوي على بعض قيمة سلسلة رقمية ، و أرقام نوع البيانات الفردية المحولة موجودة في الخلايا C3: C9. ولكنها ستحصل أيضًا على خطأ إذا كان الإدخال القيمة الرقمية خارج النطاق.

1.5 String to Double

في هذا المثال ، سنحول سلاسل الإدخال إلى نوع بيانات مزدوج (دقة مزدوجة عائمة -نقطة) الأرقام. لهذا نحن بحاجةلاستخدام وظيفة CDbl .

نطاقات نوع البيانات المزدوجة- (i) -1.79769313486231E308 إلى -4.94065645841247E-324 لـ الأرقام السالبة .

(ii) 4.94065645841247E-324 إلى 1.79769313486232E308 للأرقام الموجبة .

قم بتشغيل الكود التالي في محرر Visual basic.

7359

في الإخراج ، تحتوي الخلايا B3: B9 على بعض قيمة السلسلة الرقمية و أرقام نوع البيانات المزدوجة المحولة موجودة في الخلايا C3: C9. ولكنها ستحصل أيضًا على خطأ إذا كان الإدخال القيمة الرقمية هي خارج النطاق.

1.6 سلسلة إلى العملة

يكون نوع بيانات العملة مفيدًا عندما تكون الحسابات مرتبطة بـ نقود . علاوة على ذلك ، إذا أردنا مزيدًا من الدقة في حساب ثابت - النقطة الحساب ، فإن استخدام نوع بيانات العملة يعد اختيارًا جيدًا. نحتاج إلى استخدام الدالة CCur لتحويل سلسلة إلى نوع بيانات العملة . يتراوح نوع البيانات من -922،337،203،685،477.5808 إلى 922،337،203،685،477.5808.

الرمز إلى تحويل قيمة سلسلة رقمية من الخلايا B3: B7 إلى نوع بيانات العملة في الخلايا C3: C7 هنا أدناه.

1736

1.7 سلسلة إلى بايت

تحول وظيفة CByte قيم السلسلة الرقمية إلى نوع بيانات البايت الذي يتراوح من من 0 إلى 255.

الرمز كما هويتبع :

6328

في الإخراج ، الخلايا B3: B9 تحتوي على بعض قيمة سلسلة رقمية ، و أرقام نوع بيانات البايت المحولة موجودة في الخلايا C3: C9. ولكنها ستحصل أيضًا على خطأ إذا كان الإدخال القيمة الرقمية خارج النطاق.

اقرأ المزيد: كيفية تحويل سلسلة إلى طويلة باستخدام VBA في Excel

قراءات مماثلة

  • تحويل السلسلة إلى مضاعفة في Excel VBA (5 طرق)
  • كيفية تحويل النص إلى رقم باستخدام Excel VBA (3 أمثلة مع وحدات الماكرو)
  • إصلاح خطأ التحويل إلى رقم في Excel (6 طرق)
  • كيفية تحويل الترميز العلمي إلى رقم في Excel (7 طرق)

2. استخدام وظيفة VBA المخصصة لفحص السلسلة وتحويلها إلى رقم في Excel

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

الخطوات:

  • هنا ، في الخلايا B3: B7 ، لدينا بعض سلسلة رقميةالقيم.

  • الآن ، في محرر visual basic ، انسخ و الصق الكود التالي و ثم اضغط على Ctrl + S إلى حفظ
1695
  • في الخلية C3 ، ابدأ الكتابة اسم الوظيفة ( StringToNumber ). سيقترح Excel تلقائيًا الوظيفة لاستخدامها. اضغط على مفتاح Tab للدخول إلى الوظيفة.

  • ضع مرجع الخلية B3 كالوسيطة الوحيدة.

  • الآن ، اضغط على Enter بعد إغلاق الأقواس.

  • حدد موقع مقبض التعبئة في الركن السفلي الأيمن من الخلية C3 إلى تطبيق وظيفة الخلايا C4: C7.

  • الإخراج النهائي هو الأرقام الصحيحة المرغوبة من قيم السلسلة .

3. رمز VBA لتحويل نطاق الخلايا المحدد إلى أرقام في Excel

في هذا الرسم التوضيحي ، سنقوم بتحويل النطاق من الخلايا المحددة تحتوي على قيم سلسلة لأرقام صحيحة. إذا كانت أي خلية تحتوي على قيمة غير رقمية فيها ، فسيكون الإخراج شرطة (-) سطر بدلاً من . اتبع الخطوات :

  • حدد الخلايا B3: B6 التي تحتوي على سلاسل رقمية قيم و B7 التي تحتوي a غير رقمية

  • في محرر Visual Basic نسخة و الصق التالي code .
4835
  • الآن ، اضغط على F5 إلى تشغيل الإخراج كما هو موضح في التالي لقطة الشاشة .

ملاحظات

  • استخدمنا isNumeric function في الطرق الثانية والثالثة في كود VBA الخاص بنا الذي يتحقق مما إذا كان يمكن تحويل التعبير إلى رقم.
  • في طريقة 1 ، استخدمنا وظائف مدمجة (CInt ، CDbl ، CSng… ..) من أجل تحويل قيم السلسلة الرقمية إلى أرقام . ولكن إذا كانت هناك قيمة غير رقمية ، فستظهر خطأ عدم تطابق .

الخاتمة

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

هيو ويست مدرب ومحلل إكسل ذو خبرة عالية ولديه أكثر من 10 سنوات من الخبرة في هذا المجال. حاصل على درجة البكالوريوس في المحاسبة والمالية ودرجة الماجستير في إدارة الأعمال. لدى هيو شغف بالتدريس وقد طور منهجًا تعليميًا فريدًا يسهل اتباعه وفهمه. ساعدت معرفته الخبيرة ببرنامج Excel الآلاف من الطلاب والمهنيين في جميع أنحاء العالم على تحسين مهاراتهم والتميز في حياتهم المهنية. من خلال مدونته ، يشارك Hugh معرفته مع العالم ، ويقدم دروسًا مجانية في Excel وتدريبًا عبر الإنترنت لمساعدة الأفراد والشركات على تحقيق إمكاناتهم الكاملة.