ایجاد سوال
dark_mode
0 دوستدار 0 امتیاز منفی
13 visibility
موضوع: آفیس توسط:

جلمر با داده های مالی زیادی کار می کند و اطلاعات موجود در یک کاربرگ ممکن است به ارزهای بسیاری از کشورها باشد. تنها راه تشخیص آنها توسط نماد واحد پولی است که در قالب بندی سلول استفاده می شود. به عنوان مثال، یک سلول ممکن است برای استفاده از نماد ارز "EUR" یا "SEK" قالب بندی شود. جِلمر متعجب است که آیا در یک فرمول راهی برای تعیین نماد واحد پولی که برای قالب بندی یک سلول معین استفاده می شود وجود دارد.

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

Function GetCurrency(rCell As Range) As String
    Dim sTemp As String
    Dim sKeep As String
    Dim sThrowAway As String
    Dim J As Integer

    Application.Volatile
    sKeep = "Not a Numeric Value"
    If IsNumeric(rCell) Then
        sThrowAway = "0123456789.,()+- ]"
        sTemp = rCell.Text
        sKeep = ""

        For J = 1 To Len(sTemp)
            If InStr(sThrowAway, Mid(sTemp, J, 1)) = 0 Then
                sKeep = sKeep & Mid(sTemp, J, 1)
            End If
        Next J
    End If
    GetCurrency = sKeep
End Function

برای استفاده از تابع، با فرض اینکه نماد ارز را برای هر چیزی که در سلول B7 است می خواهید، از موارد زیر استفاده کنید:

=GetCurrency(B7)

این کار به این دلیل کار می کند که ویژگی .Text برای یک سلول، نسخه فرمت شده هر آنچه در سلول است را برمی گرداند. با فرض اینکه سلول حاوی یک مقدار عددی باشد (تابع آن را آزمایش می کند)، سپس متن قالب بندی شده به متغیر sTemp اختصاص داده می شود. سپس، هر کاراکتر در آن متن با هر آنچه در رشته sThrowAway است مقایسه می شود. اگر مطابقت وجود داشته باشد، کاراکتر نادیده گرفته می شود، در غیر این صورت به متغیر sKeep اضافه می شود. این همان چیزی است که توسط تابع برگردانده می شود.

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

یک نکته مهم در مورد عملکرد وجود دارد: اگر قالب بندی یک سلول هدف را تغییر دهید، ماکرو را فعال نمی کند. به نظر می رسد این نقص خود اکسل است - وقتی فرمت را تغییر می دهید باعث محاسبه مجدد کاربرگ نمی شود، بنابراین خود ماکرو فعال نمی شود. با این حال، دفعه بعد که تغییری در کاربرگ ایجاد می کنید که نیاز به محاسبه مجدد دارد، فعال می شود.

اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

looks_5نام شما برای نمایش - اختیاری
حریم شخصی : آدرس ایمیل شما محفوظ میماند و برای استفاده های تجاری و تبلیغاتی به کار نمی رود
عدد چهار رقمی در تصویر را وارد کنید

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

0 پاسخ وجود دارد

سوال مشابهی یافت نشد

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما

23.2k سوال

8.5k پاسخ

608 دیدگاه

9.7k کاربر

101 نفر آنلاین
0 عضو و 101 مهمان در سایت حاضرند
بازدید امروز: 15207
بازدید دیروز: 17680
بازدید کل: 15139902
...