جلمر با داده های مالی زیادی کار می کند و اطلاعات موجود در یک کاربرگ ممکن است به ارزهای بسیاری از کشورها باشد. تنها راه تشخیص آنها توسط نماد واحد پولی است که در قالب بندی سلول استفاده می شود. به عنوان مثال، یک سلول ممکن است برای استفاده از نماد ارز "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 اضافه می شود. این همان چیزی است که توسط تابع برگردانده می شود.
همچنین توجه داشته باشید که اگر سلول مورد ارزیابی حاوی مقدار عددی نباشد، پیام خطا ("مقدار عددی نیست") برگردانده می شود.
یک نکته مهم در مورد عملکرد وجود دارد: اگر قالب بندی یک سلول هدف را تغییر دهید، ماکرو را فعال نمی کند. به نظر می رسد این نقص خود اکسل است - وقتی فرمت را تغییر می دهید باعث محاسبه مجدد کاربرگ نمی شود، بنابراین خود ماکرو فعال نمی شود. با این حال، دفعه بعد که تغییری در کاربرگ ایجاد می کنید که نیاز به محاسبه مجدد دارد، فعال می شود.