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

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

یکی از راه‌های نزدیک شدن به این موضوع، استفاده از تابع کاربرگ SUBSTITUTE در ارتباط با تابع PROPER است. به عنوان مثال، اگر می خواهید نمونه هایی از کلمه "The" را با "the" پیدا کنید، می توانید از موارد زیر استفاده کنید:

=SUBSTITUTE(PROPER(A1)," The "," the ")

به گنجاندن فضای قبل و بعد از آنچه جستجو می‌کنید و چیزی که جایگزین می‌کنید توجه کنید. این تضمین می کند که فقط کلمات کامل اصلاح شوند. همچنین مطمئن می شود که هیچ تغییری در ابتدای مقدار سلول یا در انتهای آن ایجاد نشود.

اگر می‌خواهید کلمات دیگری را که نیاز به جایگزینی دارند جستجو کنید، می‌توانید به سادگی تعداد نمونه‌های SUBSTITUTE را در فرمول افزایش دهید:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(PROPER(A1)," The ",
" the ")," An "," an ")," And "," and ")

این بدیهی است که اگر کلمات زیادی دارید که می‌خواهید آنها را از اصلاح حذف کنید، ممکن است کمی ناخوشایند باشد. در این صورت باید به استفاده از ماکرو متوسل شوید. ماکرو زیر که به عنوان یک تابع تعریف شده توسط کاربر نوشته شده است، می تواند برای تبدیل تمام کلمات یک سلول به حروف اولیه (درست مانند PROPER) استفاده شود، اما مطمئن شوید که برخی از کلمات تعریف شده کوچک هستند.

Function Title(ByVal ref As Range) As String
    Dim vaArray As Variant
    Dim c As String
    Dim i As Integer
    Dim J As Integer
    Dim vaLCase As Variant
    Dim str As String

     Array contains terms that should be lower case
    vaLCase = Array("a", "an", "and", "in", "is", _
      "of", "or", "the", "to", "with")

    c = StrConv(ref, 3)
    split the words into an array
    vaArray = Split(c, " ")
    For i = (LBound(vaArray)+1) To UBound(vaArray)
        For J = LBound(vaLCase) To UBound(vaLCase)
             compare each word in the cell against the
             list of words to remain lowercase. If the
             Upper versions match then replace the
             cell word with the lowercase version.
            If UCase(vaArray(i)) = UCase(vaLCase(J)) Then
                vaArray(i) = vaLCase(J)
            End If
        Next J
    Next i

   rebuild the sentence
    str = ""
    For i = LBound(vaArray) To UBound(vaArray)
        str = str & " " & vaArray(i)
    Next i

    Title = Trim(str)
End Function

برای استفاده از ماکرو، تنها کاری که باید انجام دهید این است که از موارد زیر در کاربرگ خود استفاده کنید:

=Title(A1)

همچنین می توانید یک رویکرد اضافی برای انجام تبدیل مورد نظر در این سایت پیدا کنید:

http://dmcritchie.mvps.org/excel/proper.htm
اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

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

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

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

سوالات مشابه

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما
0 دوستدار 0 امتیاز منفی
1 پاسخ 5 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 29 visibility
ارسال شده در 25 تیر 1402 موضوع: آفیس توسط: Admin
0 دوستدار 0 امتیاز منفی
1 پاسخ 262 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 31 visibility
ارسال شده در 25 تیر 1402 موضوع: آفیس توسط: Admin

24.3k سوال

9.6k پاسخ

614 دیدگاه

11.2k کاربر

170 نفر آنلاین
0 عضو و 170 مهمان در سایت حاضرند
بازدید امروز: 22739
بازدید دیروز: 17853
بازدید کل: 20334918
...