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

ژان باید کاما را با نقطه در جدول اعداد جایگزین کند. او در فرانسه کار می کند و از رایانه شخصی فرانسوی استفاده می کند، اما باید این اعداد را برای یک برنامه آمریکایی غیر اکسل «ترجمه» کند. وقتی او به صورت دستی Find and Replace را انجام می دهد، همه چیز به خوبی کار می کند. البته، اعداد او به رشته تبدیل می شوند، اما ژان مشکلی ندارد. وقتی او سعی می کند همان عملیات Find and Replace را در یک ماکرو انجام دهد، هیچ اتفاقی نمی افتد. به نظر می رسد که کاما نادیده گرفته شده است. ژان تعجب می کند که چگونه می تواند این کار را به صورت ماکرو انجام دهد نه اینکه هر بار به صورت دستی آن را انجام دهد.

تغییر موقت آنچه اکسل به عنوان تنظیمات منطقه ای استفاده می کند، نسبتاً آسان است تا بتواند اطلاعات را همانطور که ژان می خواهد نمایش دهد. ماکرو زیر به راحتی بین تنظیمات مورد نظر جابه جا می شود:

Sub ChangeNumberFormat()
    With Application
        .UseSystemSeparators = False
        If .DecimalSeparator = "." Then
            .DecimalSeparator = ","
            .ThousandsSeparator = "."
        Else
           .DecimalSeparator = "."
           .ThousandsSeparator = ","
        End If
    End With
End Sub

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

اگر به چیزی مستقیمتر نیاز دارید، احتمالاً بهتر است از Find and Replace استفاده نکنید. در عوض، از ماکرو برای تغییر مستقیم آنچه در هر سلول است استفاده کنید. چنین رویکردی می تواند بسیار سریع تر از تکیه بر Find and Replace حتی در یک ماکرو اجرا شود. در اینجا یک کاربرد ساده از این مفهوم وجود دارد:

Sub SwitchCommasPeriods()
    Dim c As Range
    Dim sTemp As String
    
    For Each c In Selection
        sTemp = c.Text
        sTemp = Replace(sTemp, ",", "|")
        sTemp = Replace(sTemp, ".", ",")
        sTemp = Replace(sTemp, "|", ".")
        c = sTemp
    Next c
End Sub

به چند مورد در ماکرو توجه کنید. ابتدا به ویژگی Text برای هر سلول نگاه می کند. دلیل آن این است که ویژگی Text مقدار قالب بندی شده سلول را برمی گرداند - به عبارت دیگر، آنچه نمایش داده می شود. (اگر به سادگی به ویژگی Value نگاه کنید، عدد فرمت نشده را دریافت می کنید، که آن چیزی نیست که می خواهید استفاده کنید.)

دومین نکته ای که باید به آن توجه کنید این است که از تابع Replace برای جایگزینی تمام کاماها با یک نوار عمودی، سپس تمام نقطه ها با کاما و در نهایت تمام میله های عمودی با نقطه استفاده می شود. این رویکرد ضروری است زیرا شما اساساً نقطه و کاما را در متن عوض می کنید.

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

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

پاسخ شما

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

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

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

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

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

23.2k سوال

8.5k پاسخ

608 دیدگاه

9.7k کاربر

123 نفر آنلاین
0 عضو و 123 مهمان در سایت حاضرند
بازدید امروز: 7591
بازدید دیروز: 14599
بازدید کل: 15089221
...