שיתוף | קודי VBA להחלפת כמה מילים בו זמנית בוורד.
-
שלום,
הבאתי קוד להחלפה באמצעות מאקרו כמה מילים בו זמנית , דהיינו "או או"...
הוראות: כשתפעילו את המאקרו יקפוץ לכם תיבת דו שיח שבו תכניסו את כל המילים שתרצו להחליף עם פסיק בין מילה למילה ובהחלף ג"כ עם פסיק בין מילה למילה, ובהצלחה.Sub החלפת_כמה_מילים_בו_זמנית() ' פורסם ע"י מגדלים, ב"מתמחים טופ" 'Update by ExtendOffice 2018/10/25 Dim xFind As String Dim xReplace As String Dim xFindArr, xReplaceArr Dim I As Long Application.ScreenUpdating = False xFind = InputBox(":הזן פריטים שיימצאו כאן, מופרדים באמצעות פסיק ", "!חפש כמה מילים בו זמנית") xReplace = InputBox("הזן המילים שאתה רוצה לקבל בתמורתן, (מופרדים (.באמצעות פסיק ", "-החלף ב") xFindArr = Split(xFind, ",") xReplaceArr = Split(xReplace, ",") If UBound(xFindArr) <> UBound(xReplaceArr) Then MsgBox "Find and replace characters must be equal.", vbInformation, "Kutools for Word" Exit Sub End If For I = 0 To UBound(xFindArr) Selection.HomeKey Unit:=wdStory With Selection.Find .ClearFormatting .Replacement.ClearFormatting .Text = xFindArr(I) .Replacement.Text = xReplaceArr(I) .Format = False .MatchWholeWord = False End With Selection.Find.Execute Replace:=wdReplaceAll Next Application.ScreenUpdating = True End Sub
מקור , ונערך קצת ע"י , .
-
וכשתרצו להחליף מספר מילים קבועים מראש, (בלי שתצטרכו כל פעם להכניס מילים, להחליף ב-)
תוכלו להשתמש עם פקודה זו:Sub החלף_מילים_קבועים_מראש() ' ."פורסם על ידי מגדלים ב"מתמחים טופ arrFind = Array("א", "ב") arrReplace = Array("א_להחליף_ב", "ב_להחליף_ב ") For f = 0 To UBound(arrFind) Selection.Find.Text = arrFind(f) Selection.Find.Replacement.Text = arrReplace(f) Selection.Find.Wrap = wdFindContinue Selection.Find.Execute Replace:=wdReplaceAll Next End Sub
להוספת מילים הכניסו מילים וביניהם
","
בלולאה וכנגדם בלולאה השניה . כמובן במקום המיליםא_להחליף_ב
להכניס את המילים הרצויים, ולמחוק מילים אלו.
קרדיט לניק מתמצא בפרוג. -
@נגן אמר בשיתוף | קוד VBA להחלפת כמה מילים בו זמנית בוורד.:
כלומר אם החלפה ראשונה היא מ X ל Y, והחלפה שניה מ Y ל Z - התוצאה תהיה ש X+Y יהפכו ל Z?
לזה יש את הפקודה הנפלאה שהביא @dmp , כאן,:
Sub החלפת_מילים_והיפוכם() For i = 1 To ActiveDocument.Words.Count Set w = ActiveDocument.Words(i) Select Case w Case "1 ": w.Text = "2 " Case "2 ": w.Text = "1 " Case "3 ": w.Text = "4 " Case "4 ": w.Text = "3 " End Select Next End Sub
-
וכשתרצו להחליף בו זמנית מילים קבועים מראש, מספר מילים (דהיינו "או או") למילה אחת תשתמשו עם זה:
Sub החלפת_כמה_מילים_למילה_אחת() ' ."פורסם על ידי מגדלים ב"מתמחים טופ arrFind = Array("א", "ב") For f = 0 To UBound(arrFind) Selection.Find.Text = arrFind(f) Selection.Find.Replacement.Text = "להחליף_ב" Selection.Find.Wrap = wdFindContinue Selection.Find.Execute Replace:=wdReplaceAll Next End Sub
וכנ"ל להוסיף ולשנות למילים הנצרכים...
בהצלחה רבה. -
-
-
-