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

ناتان اغلب با مشکلی مواجه می‌شود که افراد عناوین شغلی خود را با حروف بزرگ می‌نویسند (مثلاً «مدیر مالی باید ارائه دهد...») در اسناد. او مایل است که یک کلان برای هر استفاده از عنوان مدیریتی بررسی کند و آن را با حروف کوچک بنویسد، مگر اینکه دلیل موجهی وجود داشته باشد که وقتی عنوان شروع یک جمله می‌شود، اولین کلمه را با حروف اولیه درآورد. او نمی‌داند که آیا می‌توان بدون وارد کردن تمام سی عنوان مدیریتی، یک کارت وحشی برای مطابقت با هر عبارت دو کلمه‌ای که کلمه دوم «مدیر» یا «مدیران» باشد، تنظیم کرد.

این امکان وجود دارد که برای یافتن انواع نمونه هایی که به دنبال آن هستید، جستجوی کارت وحشی انجام دهید. تنها کاری که باید انجام دهید این است که یک جستجوی پیشرفته انجام دهید، مطمئن شوید که تیک Use Wildcards انتخاب شده است و سپس از این الگو در قسمت Find What استفاده کنید:

<[A-Za-z][a-z]{1,}>^32[Mm]anager*>

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

مشکل این است که نمی توان کلمه ای را که با استفاده از حروف عام پیدا شده است به تمام حروف کوچک تغییر داد. این بدان معنی است که شما باید به صورت دستی مواردی را که پیدا شده است بررسی کنید و سپس تغییرات لازم را با دست انجام دهید. اگر فقط باید هر چند وقت یکبار این کار را انجام دهید، این کار خیلی سخت نیست زیرا کادر گفتگوی Find and Replace مودال نیست. . (این بدان معناست که می‌توانید هنگام ویرایش سند، کادر محاوره‌ای را روی صفحه نمایش خود باز بگذارید، سپس روی Find Next در کادر محاوره‌ای کلیک کنید تا اتفاق منطبق بعدی را پیدا کنید.)

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

Sub FixManagerCapitalisation()
    Dim aRange As Range
    Dim bRange As Range

    With Selection.Find
        .ClearFormatting
        .Text = "<[A-Za-z][a-z]{1,}>^32[Mm]anager*>"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindAsk
        .MatchCase = False
        .MatchWildcards = True
        Do While .Execute
            Set aRange = Selection.Range
            Set bRange = Selection.Range
            bRange.MoveEnd unit:=wdSentence
            If bRange.Text <> Selection.Sentences(1).Text Then
                aRange = LCase(aRange.Words(1).Text) & Trim(aRange.Words(2))
            End If
            aRange = aRange.Words(1) & Trim(LCase(aRange.Words(2).Text))
            aRange.Start = aRange.End
            aRange.Select
            .ClearFormatting
        Loop
    End With
End Sub
اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

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

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

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

سوالات مشابه

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

24.3k سوال

9.6k پاسخ

614 دیدگاه

11.2k کاربر

393 نفر آنلاین
0 عضو و 393 مهمان در سایت حاضرند
بازدید امروز: 14801
بازدید دیروز: 25180
بازدید کل: 20352149
...