בקשת מידע | מקרו בוורד שיהפוך לי מ1 ל2 ומ2 ל1.
-
@מלאכת-מחשבת תנסה את זה ותעדכן עם עובד
For Each w In ActiveDocument.Words 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
כמובן תחליף את המספרים למילים שאתה רוצה.
שים לב שיש לכתוב כל מילה פעמיים כמו בדוגמא.
אם זה נתקע תנסה עם רווח לפני או אחרי המילה -
@dmp זה תוקע לי את כל המחשב, ניסיתי דבר ראשון בלי להחליף רק כפשוטו 1 2 3 4 וזה תוקע לי את הכל.
נראה לי שהוא נתקע כי הוא מחליף את 1 ל2 ואח"כ מחפש את 2 להחליף ל1 ומחליף גם את זה שהוחלף עתה וע"כ חוזר לתחילה ומחליף את ה1 ל2 וחוזר חלילה עד סוף כל הדורות... -
@מלאכת-מחשבת אמר בבקשת מידע | מקרו בוורד שיהפוך לי מ1 ל2 ומ2 ל1.:
@dmp זה תוקע לי את כל המחשב, ניסיתי דבר ראשון בלי להחליף רק כפשוטו 1 2 3 4 וזה תוקע לי את הכל.
נראה לי שהוא נתקע כי הוא מחליף את 1 ל2 ואח"כ מחפש את 2 להחליף ל1 ומחליף גם את זה שהוחלף עתה וע"כ חוזר לתחילה ומחליף את ה1 ל2 וחוזר חלילה עד סוף כל הדורות...ממש לא.
המאקרו עובר מילה מילה ובודק האם היא זהה לאחד הערכים בשורות 3-6, ואם כן, מבצע החלפה.
מה שאפשר לנסות זה:
א. להפעיל בקובץ קצר שיקח מהר לעבור על הכל.
ב. לעבור לתצוגת טיוטה.
ג. לא להפעיל מיד עם פתיחת המסמך אלא לעשות עריכה כל שהיא (ואפשר למחוק מיד) ואח"כ להפעיל את המאקרו. (כלל זה חשוב לכל מאקרו שמבצע שינויים במסמך שאין להפעילו מיד). -
@מלאכת-מחשבת צודק!!!
בדקתי עכשיו וזה אכן נתקע, אבל בנוסח הזה זה אכן עובד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
-
@dmp מעולה!
האם תוכל לעבור על מה שכתבתי כאן https://mitmachim.top/post/363091 ? -