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

آیلین با اسناد زیادی کار می کند که تاریخ آنها به صورت عددی است، مانند 9/22/12. او باید این تاریخ‌ها را به فرمت دیگری تبدیل کند، به‌ویژه 22 سپتامبر 2012. او نمی‌داند که آیا راه آسانی برای ایجاد تغییر بدون نیاز به تایپ مجدد هر تاریخ وجود دارد.

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

اگر تاریخ یک فیلد است، می‌توانید روی تاریخ کلیک راست کرده و از منوی زمینه، Edit Field را انتخاب کنید. سپس می توانید فیلد را تغییر دهید، از جمله انتخاب یک قالب تاریخ متفاوت در لیست ویژگی های فیلد.

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

ماکرو زیر از طریق یک سند عبور می‌کند و همه تاریخ‌ها را در قالب m/d/yyyy جستجو می‌کند. (می تواند یک یا دو رقم برای ماه یا روز وجود داشته باشد، اما باید چهار رقمی برای سال باشد.) اگر تاریخی مطابق با این الگو پیدا شد، به فرمت mmmm d، yyyy تبدیل می شود.

Sub GetDateAndReplace()
    Dim FoundOne As Boolean

    Selection.HomeKey Unit:=wdStory, Extend:=wdMove
    FoundOne = True " loop at least once

    Do While FoundOne " loop until no date is found
        With Selection.Find
            .ClearFormatting
            .Replacement.ClearFormatting
            .Text = "([0-9]{1,2})[/]([0-9]{1,2})[/]([0-9]{4})"
            .Format = True
            .Forward = True
            .MatchWildcards = True
        End With

        Selection.Find.Execute Replace:=wdReplaceNone

        " check the find to be sure it"s a date
        If IsDate(Selection.Text) Then
            Selection.Text = Format(Selection.Text, "mmmm d, yyyy")
            Selection.Collapse wdCollapseEnd
        Else " not a date - end loop
            FoundOne = False
        End If
    Loop
End Sub
اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

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

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

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

سوالات مشابه

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما
0 دوستدار 0 امتیاز منفی
0 پاسخ 47 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 42 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 24 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 47 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 31 visibility

25.1k سوال

10.4k پاسخ

614 دیدگاه

11.2k کاربر

393 نفر آنلاین
0 عضو و 393 مهمان در سایت حاضرند
بازدید امروز: 8589
بازدید دیروز: 38614
بازدید کل: 20480402
...