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

استیو آدرس های ایمیل را در یک سند Word نگه می دارد. برای یافتن و حذف آدرس های تکراری، او باید آدرس ها را به یک کتاب کار اکسل منتقل کند. استیو متعجب است که آیا راهی برای حذف موارد تکراری در Word وجود دارد.

برای اهداف این نکته، من فرض می‌کنم که هر آدرس ایمیل در پاراگراف خودش است، به این معنی که در انتهای هر آدرس یک بازگشت سخت وجود دارد. همچنین، آدرس‌ها در متن معمولی هستند، نه در داخل. یک میز.

با در نظر گرفتن این موضوع، ماکرو زیر می تواند کمک بزرگی باشد. از دو حلقه For...Next برای گام برداشتن در پاراگراف های جداگانه در یک سند به عقب استفاده می کند. هنگامی که یک پاراگراف تکراری قرار می گیرد، تکراری حذف می شود. ماکرو نیازی به مرتب سازی آدرس های ایمیل ندارد.

Sub DelDupesFull()
    Dim J As Long
    Dim K As Long

    Application.ScreenUpdating = False
    With ActiveDocument
        For J = .Paragraphs.Count - 1 To 1 Step -1
            For K = .Paragraphs.Count To J + 1 Step -1
                If .Paragraphs(J).Range.Text = _
                  .Paragraphs(K).Range.Text Then _
                  .Paragraphs(K).Range.Delete
            Next K
        Next J
    End With
    Application.ScreenUpdating = True
End Sub

توجه داشته باشید که دو پاراگراف باید دقیقاً یکسان باشند. برای مثال، اگر یک پاراگراف در ابتدا یا انتهای آن یک فضای اضافی داشته باشد یا یکی با حروف بزرگ متفاوت باشد، آن‌ها یکسان در نظر گرفته نمی‌شوند و یکی حذف نمی‌شود. ماکرو همچنین روی تمام پاراگراف های یک سند کار می کند، نه فقط روی بخشی از آنها.

اگر تغییری را ترجیح می دهید که فقط بر روی متن انتخاب شده کار کند، موارد زیر برای شما کار خواهند کرد:

Sub DelDupesSec()
    Dim J As Long
    Dim K As Long

    Application.ScreenUpdating = False
    With Selection
        For J = .Paragraphs.Count - 1 To 1 Step -1
            For K = .Paragraphs.Count To J + 1 Step -1
                If .Paragraphs(J).Range.Text = _
                  .Paragraphs(K).Range.Text Then _
                  .Paragraphs(K).Range.Delete
            Next K
        Next J
    End With
    Application.ScreenUpdating = True
End Sub

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

من راه حل های ممکن مبتنی بر کلان را ابتدا با این فرض ارائه کردم که حذف موارد تکراری کاری است که باید به طور منظم یا روی چندین فایل انجام شود. در حقیقت، نیازی به استفاده از ماکرو نیست. روشی وجود دارد که می‌توانید از آن استفاده کنید که بر قابلیت‌های عام قابلیت‌های Find and Replace Word تکیه دارد. این مراحل را دنبال کنید:

  1. پاراگراف های حاوی آدرس های ایمیل را مرتب کنید.
  2. Ctrl+H را فشار دهید تا تب Replace در کادر محاوره ای Find and Replace نمایش داده شود.
  3. در صورت موجود بودن دکمه More را کلیک کنید.
  4. مطمئن شوید که تیک Use Wildcards انتخاب شده باشد.
  5. در کادر Find What، " (*^13)@ " (بدون علامت نقل قول) را وارد کنید.
  6. در کادر Replace With، " 1 " را وارد کنید (دوباره بدون علامت نقل قول).
  7. روی Replace All کلیک کنید.
  8. کادر گفتگوی Find and Replace را ببندید.

این به دلیل نحوه تنظیم الگوی موجود در کادر Find What (مرحله 5) کار می کند. قسمت اول، در داخل پرانتز، هر چیزی (ستاره) را پیدا می کند که به یک بازگشت سخت ختم می شود ( ^13 ). قسمت دوم علامت @ است که به معنای "یافتن یک یا چند مورد از موارد قبلی" است. بنابراین، پاراگراف های تکراری را پیدا می کند که یکی پس از دیگری هستند. (به همین دلیل است که مرحله اول، مرتب سازی آدرس های ایمیل، ضروری است.) سپس با هر آنچه در پرانتز در مرحله 5 بود، جایگزین می شوند.

این ممکن است کمک کند که چه چیزی در حال وقوع است کمی بهتر توضیح دهد. بیایید بگوییم که پس از مرتب سازی، لیست آدرس های ایمیل شما به شکل زیر است:

1 allen@abcd.com
2 bill@efgh.com
3 bill@efgh.com
4 bill@efgh.com
5 cari@ijkl.com

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

الگوی Find What، (*^13)@ با پاراگراف های 2-4 مطابقت دارد زیرا پاراگراف 2 که با بخشی از الگوی داخل پرانتز مطابقت دارد، دو بار دیگر در خطوط 3 و 4 تکرار می شود. (به یاد داشته باشید که نماد @ مطابقت دارد . "یک یا چند مورد از موارد فوق.") سپس این تطابق سه پاراگراف با آنچه که در ابتدا با بخش *^13 الگوی Find What مطابقت داشت جایگزین می شود، که به معنای محتوای خط 2 است. بنابراین، اثر این است که پاراگراف های 2-4 با بند 2 جایگزین می شوند و موارد تکراری حذف می شوند.

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

پاسخ شما

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

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

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

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

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

23.2k سوال

8.5k پاسخ

613 دیدگاه

10.8k کاربر

180 نفر آنلاین
0 عضو و 180 مهمان در سایت حاضرند
بازدید امروز: 4181
بازدید دیروز: 13001
بازدید کل: 19458477
...