فهرست مطالب
در این مقاله، ما چندین روش برای تبدیل رشته به عدد در Excel VBA را مورد بحث قرار خواهیم داد. نحوه استفاده از توابع داخلی و ایجاد یک تابع سفارشی با استفاده از آنها برای تبدیل رشته به عدد با نمونه کد VBA را خواهیم دید.
دانلود کتاب تمرین تمرین
این کتاب تمرین را برای تمرین در حین خواندن این مقاله دانلود کنید.
تبدیل رشته به عدد.xlsm
3 روش برای تبدیل رشته به عدد در Excel VBA
1. تبدیل رشته به عدد با استفاده از توابع تبدیل نوع
اکسل چندین تابع داخلی تبدیل نوع را ارائه می دهد. ما می توانیم آنها را در کد VBA خود برای تبدیل آسان از نوع داده رشته ای به انواع داده های مختلف استفاده کنیم.
1.1 رشته به عدد صحیح
برای تبدیل رشته به عدد صحیح ، ما میتوانیم از تابع CInt در کد خود استفاده کنیم. تابع CInt فقط یک آرگومان می گیرد و آن باید یک مقدار عددی باشد. بیایید کد زیر را در Visual Code Editor امتحان کنیم.
3699
برای اجرا کردن F5 را فشار دهید کد . خروجی در MsgBox نشان داده می شود.
تابع CIint تبدیل رشته عددی مقدار ("12.3" ) به یک عدد صحیح 12.
برای درک بیشتر در مورد تابع Cint ، موارد زیر را اجرا کنید در ویرایشگر کد کد کنید و نتایج را مشاهده کنید .
8415
خروجی اینجا درزیر عکس از صفحه .
توضیح کد
در این کد، ما از برای… حلقه بعدی برای اعمال تابع Cint روی رشته های سلول B3:B7. خروجی ها در سلول های C3:C7 چاپ می شوند. ما از تابع Cells برای تعیین مقادیر ورودی و محل چاپ مقادیر خروجی استفاده کردیم.
نتایج
تابع Cint 25.5 را به عدد صحیح بعدی 26 تبدیل کرد. از طرف دیگر، 10.3 را به 10 تبدیل کرد، نه 11 . هنگامی که یک مقدار عددی اعشاری کمتر از 0.5 باشد، تابع به همان عدد کاهش می یابد. اما مقدار رشته عددی اعشاری اگر برابر یا بزرگتر از 0.5 باشد به عدد عدد صحیح بعدی تبدیل می شود.
توجه
مقدار صحیح دارای محدوده ای بین -32,768 تا 32,767 است. اگر یک مقدار عددی قرار دهیم که خارج از این محدوده باشد ، اکسل خطا را نشان می دهد.
1.2 رشته به طولانی
عملکرد CLng یک مقدار رشته عددی را به نوع داده طولانی تبدیل می کند. این عملکرد مشابه عملکرد CINT است. تفاوت اصلی در محدوده آن است که بین -2,147,483,648 و 2,147,483,647 است.
The code to run is here below:7702
در اینجا، سلولهای B3:B9 حاوی مقداری مقدار رشته عددی ، و تبدیل شده l اعداد ong در سلولها هستند C3:C9. تابع CLng تبدیل شد -32800 و 32800 با موفقیت به اعداد طولانی که عملکرد Cint قادر به انجام آن نبود. اما اگر ورودی مقدار عددی خارج از محدوده باشد، خطا را نیز دریافت خواهد کرد.
1.3 رشته به اعشار
با استفاده از تابع CDec می توانیم تبدیل کنیم a مقدار رشته عددی تا نوع داده اعشاری. کد زیر را برای تبدیل مقادیر عددی در سلول های B3:B7 به نوع داده اعشاری را اجرا کنید.
5204
1.4 رشته به تک
در این مثال، رشتههای ورودی را به تعداد دادهای تکی (یکی) تبدیل میکنیم اعداد دقیق با ممیز شناور. برای این کار، باید از تابع CSng استفاده کنیم.
محدوده نوع داده واحد- (i) -3.402823E38 تا -1.401298E-45 برای اعداد منفی.
(ii) 1.401298E-45. 1.401298E-45 <3. برای <3. اعداد مثبت.
کد زیر را در ویرایشگر ویژوال بیسیک اجرا کنید.
5490
در خروجی، سلولهای B3:B9 حاوی مقداری مقدار رشته عددی، و اعداد نوع داده تبدیل شده در سلولهای C3:C9 هستند. اما یک خطا نیز دریافت میکند. 4>اگر ورودی مقدار عددی خارج از محدوده باشد.
1.5 رشته تا دو برابر شود
در این مثال، رشته های ورودی را به نوع داده مضاعف (شناور با دقت دوگانه) تبدیل می کنیم -point) اعداد. برای این، ما نیاز داریمبرای استفاده از تابع CDbl .
محدوده نوع داده دوگانه- (i) -1.79769313486231E308 تا -4.94065645841247E-324 برای <3 اعداد منفی.
(ii) 4.94065645841247 برای 4.94065645841247 برای <4.94065645841247 <3 عدد 7 تا 324 <3 E-8> <3 عدد 3 تا 324> <3 عدد 3 تا 324> <3 عدد 3 تا 324> <3 عدد 7 تا 324> .
کد زیر را در ویرایشگر ویژوال بیسیک اجرا کنید.
8388
در خروجی، سلولهای B3:B9 حاوی مقداری مقدار رشته عددی و اعداد نوع داده دوگانه تبدیل شده در سلولهای C3:C9 هستند. اما اگر ورودی خطا را نیز دریافت میکند. 3>مقدار عددی خارج از محدوده است.
1.6 رشته به ارز
نوع داده ارز زمانی مفید است که محاسبات مربوط به پول باشد. علاوه بر این، اگر می خواهیم دقت بیشتری در ثابت – نقطه محاسبه داشته باشیم، استفاده از نوع داده ارز انتخاب خوبی است. ما باید از تابع CCur برای تبدیل یک رشته به نوع داده ارز استفاده کنیم. نوع داده محدوده از -922,337,203,685,477.5808 تا 922,337,203,685,477.5808 است.
Code to convert st numer 4> از سلول های B3:B7 تا نوع داده ارز در سلول های C3:C7 در اینجا در زیر آمده است.
4839
1.7 رشته به بایت
عملکرد CByte مقادیر رشته عددی را به نوع داده بایت تبدیل می کند که از متغیر است. 0 تا 255.
کد به صورت استبه شرح زیر است :
3755
در خروجی، سلولهای B3:B9 حاوی مقداری مقدار رشته عددی، و اعداد نوع داده بایت تبدیل شده در سلولهای C3:C9 هستند. اما یک خطای <4 نیز دریافت میکند>اگر ورودی مقدار عددی خارج از محدوده باشد.
بیشتر بخوانید: نحوه تبدیل رشته به طولانی با استفاده از VBA در اکسل
خواندنهای مشابه
- تبدیل رشته به دوبل در Excel VBA (5 روش)
- نحوه تبدیل متن به عدد با Excel VBA (3 مثال با ماکرو)
- رفع خطای تبدیل به عدد در اکسل (6 روش)
- نحوه تبدیل نماد علمی به عدد در اکسل (7 روش)
2. استفاده از تابع سفارشی VBA برای بررسی و تبدیل رشته به عدد در اکسل
در این تصویر، ما یک تابع سفارشی برای تبدیل ایجاد می کنیم. رشته به اعداد سپس میتوانیم از این عملکرد سفارشی در کاربرگ مانند یک عملکرد داخلی استفاده کنیم. در این مثال، ما از تابع CINT برای تبدیل رشتهها به اعداد صحیح در حین ایجاد تابع سفارشی استفاده میکنیم. ما همچنین میتوانیم از همه توابع دیگر شرح شده در روش 1 برای تبدیل رشتهها به انواع دادههای مختلف استفاده کنیم. اکنون، مراحل زیر را برای انجام این کار دنبال کنید.
مراحل:
- در اینجا، در سلولهای B3:B7، تعدادی داریم رشته عددیمقادیر.
- اکنون، در ویرایشگر ویژوال بیسیک، کد زیر را کپی و چسب کنید و سپس Ctrl + S را فشار دهید تا ذخیره
9323
- در سلول C3 ، شروع تایپ نام تابع ( StringToNumber ). اکسل به طور خودکار عملکرد را برای استفاده پیشنهاد می کند. برای ورود به تابع کلید Tab را فشار دهید.
- مرجع سلول B3 را قرار دهید به عنوان تنها آرگومان.
- اکنون، Enter را پس از بستن پرانتز فشار دهید.
- Fill Handle را در گوشه پایین سمت راست سلول C3 قرار دهید تا اعمال شود تابع سلولها C4:C7.
- خروجی نهایی اعداد صحیح دلخواه از مقادیر رشته است .
3. کد VBA برای تبدیل محدوده انتخابی از سلول ها به اعداد در اکسل
در این تصویر، ما یک محدوده از سلول های انتخاب شده را تبدیل می کنیم حاوی مقادیر رشته ای برای اعداد صحیح. اگر هر سلولی دارای یک مقدار غیر عددی در آن باشد، خروجی به جای آن خط خط تیره (-) خواهد بود. مراحل :
- انتخاب سلولها B3:B6 دارای رشته های عددی مقادیر و B7 که حاوی یک غیر عددی
- در ویژوال بیسیک ویرایشگر کپی و موارد زیر را چسب کنید کد .
2676
- اکنون، F5 را فشار دهید تا اجرا شود خروجی همانطور که در نشان داده شده است اسکرین شات زیر.
یادداشت ها
- ما از استفاده کردیم isNumeric تابع در روش 2nd و 3nd در کد VBA ما که بررسی می کند آیا می توان یک عبارت را به عدد تبدیل کرد یا خیر.
- In روش 1 ، ما از توابع داخلی (CInt، CDbl، CSng…..) برای تبدیل مقادیر رشته عددی به اعداد استفاده کردیم. اما اگر یک مقدار غیر عددی وجود داشته باشد، یک خطای عدم تطابق را نشان می دهد.
نتیجه گیری
اکنون، ما می دانیم که چگونه مقادیر رشته را به اعداد در اکسل تبدیل کنیم. امیدواریم که شما را تشویق کند تا با اطمینان بیشتری از این قابلیت استفاده کنید. هر گونه سوال یا پیشنهاد فراموش نکنید که آنها را در کادر نظر زیر مطرح کنید.