בקשת מידע | עזרה בוורד ב'החלפה' - מאקרו VBA
-
@יוסף-בן-חיים כתב בהסבר | עזרה בורד ב'החלפה':
חלק זה לא הבנתי כוונתך
בעצם אתה לא צריך עכשיו לחפש אנטר, כי עכשיו הסוגריים הם כבר מסומנים אז תעשה רק: בחיפוש
סוגריים מסומנים
ובהחלף להחליף ל:(משנה ורווח
כזה (בתמונה לא רואים את הרווח, אבל צריך לעשות את זה, אחרת יהיה כתוב משנהא משנהב -
@menajemmendel לא נמצא תוצאות
-
@יוסף-בן-חיים תעשה פקודת מאקרו חדשה
ותעתיק מכאןSub הוספת_משנה_בין_הסוגריים()
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "("
.Replacement.Text = ";"
.Forward = True
.Wrap = wdFindContinue
.MatchWholeWord = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = ")"
.Replacement.Text = "~"
.Forward = True
.Wrap = wdFindContinue
.MatchWholeWord = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "(;)(?~)"
.Replacement.Text = "\1משנה \2"
.Forward = True
.Wrap = wdFindContinue
.MatchWholeWord = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = ";"
.Replacement.Text = "("
.Forward = True
.Wrap = wdFindContinue
.MatchWholeWord = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "~"
.Replacement.Text = ")"
.Forward = True
.Wrap = wdFindContinue
.MatchWholeWord = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Subואז תפעיל על המסמך
לי זה עבד, אם לא עובד לך תעדכן -
אם נטפרי אז צילום מסך 2024-07-30 192045.rar -
@דוד-משה-1
עדיף שתקח מכאן מתוקן גם במקרה של שני אותיות אחרי הסוגרייםSub הוספת_משנה_בין_הסוגריים() Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "(" .Replacement.Text = ";" .Forward = True .Wrap = wdFindContinue .MatchWholeWord = False .MatchWildcards = False End With Selection.Find.Execute Replace:=wdReplaceAll With Selection.Find .Text = ")" .Replacement.Text = "~" .Forward = True .Wrap = wdFindContinue .MatchWholeWord = False .MatchWildcards = False End With Selection.Find.Execute Replace:=wdReplaceAll Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "(;)(?~)" .Replacement.Text = "\1משנה \2" .Forward = True .Wrap = wdFindContinue .MatchWholeWord = False .MatchWildcards = True End With Selection.Find.Execute Replace:=wdReplaceAll Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "(;)(??~)" .Replacement.Text = "\1משנה \2" .Forward = True .Wrap = wdFindContinue .MatchWholeWord = False .MatchWildcards = True End With Selection.Find.Execute Replace:=wdReplaceAll Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = ";" .Replacement.Text = "(" .Forward = True .Wrap = wdFindContinue .MatchWholeWord = False End With Selection.Find.Execute Replace:=wdReplaceAll With Selection.Find .Text = "~" .Replacement.Text = ")" .Forward = True .Wrap = wdFindContinue .MatchWholeWord = False End With Selection.Find.Execute Replace:=wdReplaceAll End Sub
בהצלחה תעדכן שעבד
@דוד-משה-1 תודה רבה
-
@יוסף-בן-חיים כתב בהסבר | עזרה בורד ב'החלפה':
@menajemmendel לא נמצא תוצאות
כנראה לא עשית טוב. האם הבנת את העיקרון של הרעיון שלי?
-
@menajemmendel הלכתי לפי ההנחיות שלך, לא הבנתי בדיוק מה העיקרון, אולי תסביר לי מה העניין של סימון.
-
@יוסף-בן-חיים
צודק מתנצל סידרתי את זה
תעדכן שבאמת עובדSub החלפת_סוגריים_למשנה() Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "(" .Replacement.Text = ";" .Forward = True .Wrap = wdFindContinue .MatchWholeWord = False .MatchWildcards = False End With Selection.Find.Execute Replace:=wdReplaceAll With Selection.Find .Text = ")" .Replacement.Text = "~" .Forward = True .Wrap = wdFindContinue .MatchWholeWord = False .MatchWildcards = False End With Selection.Find.Execute Replace:=wdReplaceAll Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "(;)(?~)" .Replacement.Text = "\1משנה \2" .Forward = True .Wrap = wdFindContinue .MatchWholeWord = False .MatchWildcards = True End With Selection.Find.Execute Replace:=wdReplaceAll Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "(;)(??~)" .Replacement.Text = "\1משנה \2" .Forward = True .Wrap = wdFindContinue .MatchWholeWord = False .MatchWildcards = True End With Selection.Find.Execute Replace:=wdReplaceAll Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = ";" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .MatchWholeWord = False End With Selection.Find.Execute Replace:=wdReplaceAll With Selection.Find .Text = "~" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .MatchWholeWord = False End With Selection.Find.Execute Replace:=wdReplaceAll End Sub
בהצלחה
-
@יוסף-בן-חיים תוקן למעלה תעדכן שעובד
בהצלחה -
@יוסף-בן-חיים
קוד נוסף שקיבלתי מצ'אט GPTSub ReplaceTextInParentheses() Dim rng As Range Dim findText As String Dim replaceText As String Set rng = ActiveDocument.Content With rng.Find .ClearFormatting .Text = "\([א-ת]{1,2}\)" .Replacement.ClearFormatting .Replacement.Text = "" .Forward = True .Wrap = wdFindStop .Format = False .MatchWildcards = True Do While .Execute findText = Mid(rng.Text, 2, Len(rng.Text) - 2) ' Remove parentheses ' קביעת טקסט להחלפה בצורה דינמית If Len(findText) > 0 Then replaceText = "משנה " & findText rng.Text = replaceText End If rng.Collapse wdCollapseEnd Loop End With End Sub
בהצלחה
סתם בשביל הידע בדרך כלל הוא נותן קודים מצויינים
לפעמים ארוכים מידי או לא מספיקים אך כשמבקשים הוא מתקן את זה -
@יוסף-בן-חיים כתב בהסבר | עזרה בורד ב'החלפה':
@menajemmendel הלכתי לפי ההנחיות שלך, לא הבנתי בדיוק מה העיקרון, אולי תסביר לי מה העניין של סימון.
הענין של הסימון הוא מאד פשוט כדי לבודד את הסוגריים שהם בתחילת פיסקה, אתה עושה להם סימן מובהק, ואחרי זה, ע''י חפש והחלף אתה מוסיף את המילה משנה רק בוסגריים המסומנים
-
@יוסף-בן-חיים כתב בהסבר | עזרה בורד ב'החלפה':
אשמח אם תוכל לפרט בקצרה את הרעיון בזה, כלומר איך מוספים טקסט בסמוך למיספור סעיפים וכיו"ב
בקוד שלי מבוסס על החלף הרגיל ובעצם לא צריך פקודת מאקרו
הוא מחליף את הסוגריים לסימונים אחרים (כדי לא להסתבך עם תווים כלליים) ואח"כ מחלק אותם לקבוצות לביטויים את הסוגריים ואת האותיות שבאמצע ומשאיר רק את הביטוי האמצעי (כלומר האות) ומוסיף את הכיתוב "משנה".בקוד של הבינה הוא מעתיק את תוכן הסוגריים מוחק את הכל ואז כותב שוב את התוכן בתוספת "משנה" (בשביל הקוד הזה חייבים פקודת מאקרו והוא קצת יותר קשה לכתיבה)
-
-
-