سبد خرید 0

وبلاگ

تابع TEXT و تابع VALUE و تفاوت آنها در VBA

تفاوت TEXT و تابع VLAUE در برنامه نویسی VBA برای کسانی که در اکسل برنامه نویسی کار می کنند، یکی از سوالات همیشگی می باشد .اما اکثر افراد بدون آنکه تفاوت این دو تابع را بدانند از آن استفاده می کنند.این دوتابع وظیفه فراخوانی مقادیر بصورت فرمت داده متنی و داده عددی رو از مرجع تعیین شده را دارند.اما مساله اینجاست این فراخوانی قرار است چگونه انجام شود…؟

تفاوت تابع TEXT و تابع VLAUE :

TEXT :

تابع text هنگام فراخوانی اطلاعات یک مرجع به نوع فرمت دهی آن حساس می باشد.یعنی شما مقدار را همانگونه که می بینید بصورت داده متنی فراخوانی می شود.

VALUE:

تابع value صرفنظر از فرمت داده، مقدار اصلی را بصورت داده عددی آن نمایش می دهد.

حال که با تفاوت تابع TEXT و تابع VLAUE آشنا شدیم بریم یک مثالی بزنیم.برای مثال جدول شکل شماره 1 را درنظر بگیرید:

جدول مقادیر برای نمایش تفاوت فرمت ها
شکل شماره 1 – جدول مقادیر برای نمایش تفاوت فرمت ها

در جدول فوق در ردیف اول ما داده هایی بدون اعمال فرمت خاصی قرار دادیم و در ردیف دوم به ترتیب فرمت مالی، درصد و ساعت روی آنها اعمال کردیم.حال می خواهیم در محیط VBA و با تابع TEXT و تابع VALUE نحوه فراخوانی این اطلاعات را بررسی کنیم.

حتما بخوانید:   تبدیل عدد به حروف فارسی،انگلیسی و روسی در اکسل + ABH

ابتدا به محیط VBA رفته و یوزرفرمی مطابق شکل 2 ایجاد کنید:

یوزرفرم مقایسه تابع text و تابع value در vba
شکل شماره 2 – یوزرفرم برای بررسی تفاوت VALUE و TEXT

روی دکمه VALUE دبل کلیک کنید تا به محیط کدنویسی هدایت شوید.حال کد زیر را در رویداد مربوط به Click قرار دهید:

TextBox1 = Range("c3").Value
TextBox2 = Range("d3").Value
TextBox3 = Range("e3").Value

دوباره روی دکمه TEXT دبل کلیک کنید تا به محیط کدنویسی هدایت شوید.حال کد زیر را در رویداد مربوط به Click قرار دهید:

TextBox1 = Range("c3").Text
TextBox2 = Range("d3").Text
TextBox3 = Range("e3").Text

همانطور که در شکل فوق مشاهده می کنید برای مثال وقتی مقدار درصد را با تابع VALUE فراخوانی می کنیم نتیجه بصورت 0.53 نشان داده می شود ولی وقتی با تابع TEXT فراخوانی می شود نتیجه بصورت %53 نمایش داده می شود.


منبع : support.office.com/en-us/excel

دانلود فایل تمرین :

اشتراک گذاری:

مطالب زیر را حتما مطالعه کنید

12 دیدگاه

به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.

  • سلام . میخواستم بپرسم چطور میتونم آدرس یک سلول رو استخراج کرد . به این معنی که بالفرض در ستون a یک سری اعداد داریم ، حالا میخوایم در b1 عددی رو وارید کنیم و آدرس این عدد وارد شده بصورت سطر و ستون در یه سلول دیگه به ما نمایش داده بشه . ممنون .

    • سلام.

      دقیقا متوجه منظورتان نشدم.ولی می توانید از تابع CELL برای استخراج اطلاعات یک سلول استفاده کنید.

      برای مثال تابع زیر آدرس سلول رو نشون میده:

      (CELL(“address”,A1=

  • ستون a حاوی یه سری اعداد هست حالا عددی که در سلول b1 وارد میکنیم رو توس ستون a پیدا کنه و آدرس سطر و ستونش رو بذاره توی سلول b2. امیدوارم تونسته باشم منظورم رو رسونده باشم . ممنون از پاسخ گوییتون .

    • اگر فقط شماره ردیف و شماره ستون لازم هست برای نمونه از فرمول زیر استفاده کنید:

      شماره ردیف : (MATCH(B1,A:A,0=

      شماره ستون : خب همون 1 هست

      برای نمایش یکجا از فرمول زیر استفاده کنید:

      (1&”-“&MATCH(B1,A:A,0=

  • عااااالی بود دقیقا همین رو میخواستم . خدا خیرت بده . هم سایتتون جالبه و هم اینکه سریع جواب میدید 👨‍🏫🌹

    • اگر منظورتون شیت هست از کد زیر استفاده کنید:

      استفاده از نام شیت:
      Select.(“نام شیت”)sheets

      استفاده از ایندکس شیت:
      sheet1.select

      بجای عدد 1 شما ایندکس شیت موردنظر رو بنویسید.

  • میشه یه کتاب خوب در زمینه vba با مثال های کاربردی معرفی کنید؟
    کلا اگه کتاب خوبی در مورد vba سراغ دارید لطفا معرفی کنید .
    ممنون

  • سلام . فرم ورود کالا به انبار طراحی کردم که هر شماره دفتر مربوط به یه محموله میشه و محموله ها میتونن از ۱ قلم تا ۱۰ قلم باشن . میخوام توی تعداد تکس باکس تعداد قلم هر عددی که گذاشتم به تعداد همون عدد تکس باکس ورود کالا واسه اون شماره فاکتور باز بشه . مثلا اگه زدم ۱ تکس باکس رو نشون بده و اگه زدم ۵ ، ۵ تا تکسباکس رو نشون بده که آماده پرکردن باشن . امیدوارم منظورم رو رسونده باشم . با تشکر

    • سلام.

      با اینکه این روش مناسبی نیست ولی برای اینکار به تعداد موردنیاز تکست باکس ایجاد و با شرط گذاری آنها را نمایش یا مخفی کنید.

      برای نماش تکست باکش مثلا:

      TextBox1.Visible = True

      و برای مخفی کردن:

      TextBox1.Visible = False

  • آیا مفاهیم vba برای اکسل و اکسس تفاوت دارن ؟ میشه در این زمینه یکم توضیح بدید و برای کاربرد هر کدوم یه مثال بزنید مثلا کدوم واسه انبار داری بهتره .

    • سلام.
      وقت بخیر.

      اینکه اکسل بهتره یا اکسس کاملا به نیاز و در پی اون هم سطح دانش شما از نرم افزار بستگی داره.زبان برنامه نویسی پایه هردو VBA هست اما توابع و ابزارهای اکسس در طراحی کوئری ها به مراتب قوی تر هست.تفاوت کدنویسی هم در آبجکت های استفاده شده در هرکدام هست و میشه گفت بیسش تقریبا یکی هست.

      اکسل و اکسس هرکدوم مزایا و معایب خودشون رو دارن.برای کار با اکسس به نسبت اکسل نیاز به مهارت بیشتری نیاز دارید و مثل اکسل دستتون در طراحی فرم ها و گزارشات باز نیست.اگر هدف شما طراحی یک نرم افزار هست مسلما اکسل در مقابل اکسس حرفی برای گفتن نداره.کارهایی که در اکسس با چند ابزار و تابع ساده میشه انجام داد، در اکسل باید خون دل بخوری.همچنین امنیت داده در اکسس خیلی بالاتر از اکسل هست.درواقع اکسل امنیتی نداره.

      اما اگر هدفتان تجریه و تحلیل داده و طراحی گزارشات و نمودار ها و داشبورد هست مسلما اکسل بهتر است.
      اینکه میبینید اکثر افراد سراغ اکسل رفتن دلیلش راحتی و سادگی کار با اکسل هست که دستت رو برای انجام هرکاری باز گذاشته.ولی در اکسس خبری از اینا نیست.

      بطور کلی :

      اکسس: برای نگه داری داده به عنوان یک پایگاه داده با امکان اتصال آسان به انواع پایگاه داده ها مثل SQL با امنیت بالا مناسب هست.

      اکسل: با کاربردی آسان و راحت برای کارهای روزمره،آنالیز و تحلیل داده، داشبوردسازی با امکان شخصی سازی بالا مناسب هست.

      از همه این نکات فنی که بگذریم ، کاربرد اکسل خیلی بیشتر از اکسس هست.پس یادگیری اکسل در سطح پیشرفته به شدت توصیه میشه و واجب تر از اکسس هست.البته این حرفم قدرت و نقاط مثبت اکسس رو کمرنگ نمیکنه.

دیدگاهتان را بنویسید