בקשה | פקודות מקרו בוורד.
-
(בהמשך למדריך של @א.מ. במדריך חיפוש והחלפה בוורד.)
א. איך נוכל להחליף בהחלפה באמצעות הקידודים הנ"ל רק חלק מילים דהיינו אני מחפש למשל כל סוגריים ואני רוצה להחליף רק את סוג הסוגריים מעיגול =( ), למרובעות ={ },
ב. כשאני לא רוצה להחליף את כל הסוגריים שיש לי במסמך , אלא רק הסוגריים שהם מראי מקומות דהיינו ע"פ רשימה מסודרת שאסדר שכל סוגריים שיש בהם מילה "בראשית" או "שמות" וכו' לפי מה שאני אכניס, על אף שיש שם עוד מילים חוץ מהמילה הנ"ל ("בראשית" או "שמות" וכו') למשל (בראשית מו,יד) יתחלף ל {בראשית מו,יד} אבל לא סוגי סוגריים אחרות כגון (נדצ"ל אלא) ... וכדו'.
הנ"ל אני צריך בהרבה מקומות ולא יעזור לי בזה חיפוש והחלפה בכל אחד בנפרד...
בתקוה להבנה. -
א. איך נוכל להחליף בהחלפה באמצעות הקידודים הנ"ל רק חלק מילים דהיינו אני מחפש למשל כל סוגריים ואני רוצה להחליף רק את סוג הסוגריים מעיגול =( ), למרובעות ={ },
אתה שם את החלק שאתה רוצה להשאיר בתוך סוגריים עגולות, ואז אפשר להכניס כל קבוצה שהוכנסה בסוגריים לתוך ההחלפה.
דהיינו, חיפוש:\((*)\)
(שמתי את הכוכבית - שהיא מייצגת את החלק של המילה שאני רוצה להשאיר - בסוגריים.
החלפה:
{\1}
(הביטוי \1 מייצג את הקבוצה הראשונה של תווים שהקפתי בסוגריים בחיפוש)
ב. כשאני לא רוצה להחליף את כל הסוגריים שיש לי במסמך , אלא רק הסוגריים שהם מראי מקומות דהיינו ע"פ רשימה מסודרת שאסדר שכל סוגריים שיש בהם מילה "בראשית" או "שמות" וכו' לפי מה שאני אכניס, על אף שיש שם עוד מילים חוץ מהמילה הנ"ל ("בראשית" או "שמות" וכו') למשל (בראשית מו,יד) יתחלף ל {בראשית מו,יד} אבל לא סוגי סוגריים אחרות כגון (נדצ"ל אלא) ... וכדו'.
הנ"ל אני צריך בהרבה מקומות ולא יעזור לי בזה חיפוש והחלפה בכל אחד בנפרד...אולי כבר כדאי לקנות לזה תוסף... אולי ל@רחמים יש משהו.
אין כזה דבר מובנה שמאפשר החלפה של רשימה של חיפושים -
@yossiz האם בקוד הנ"ל של החלפה אין איזה שהוא דרך להכניס עוד מילים חוץ מהסמן "(" דהיינו להכניס מילה בראשית/שמות ורק אח"כ את "(*)"שזה לא יחפש את כל הסוגריים רק אלו שכתוב בהם בראשית וכן הלאה...
וא"כ איך אוכל להקליט לזה איזשהו מאקרו במצב ששם אוכל להוסיף עוד ועוד מילים לחיפוש כמו בראשית דהיינו שאיפה שכתוב בתוך סוגריים בראשית או שמות או ויקרא על אף שיש עוד מילים באמצע יתחלף הסוגריים וכנ"ל.
אם מישהו יכול לעזור לי בנידון אשמח, בתודה. -
@הללוהו אמר בבקשה | פקודות מקרו בוורד.:
בתקוה להבנה
התקוות התבדו...
רק עכשיו אני שם לב לכותרת של הנושא שאתה מבקש מאקרו. (לדעתי כותרת אמור לתמצת את גוף ההודעה אבל לא מחליף אותה. כל התוכן חייב להיות גם בגוף ההודעה)ולעצם הענין:
אפשר לחפש סוגריים שכוללים את המילה "בראשית" כך:\((*)בראשית(*)\)
ואז להחליף ב:
{\1בראשית\2}
-
@yossiz ממש תודה רבה רבה !!!
ואיך אפשר להגדיר בהחלפה שהוא יחפש או בראשית (כנ"ל) או שמות גם באופן הנ"ל שזה בתוך סוגריים
זה שאני צריך בעצם מקרו מאחר שאני צריך את זה לכמויות של טקסטים ולא על מילה מסוים אלא על רשימה של מילים בראשית /שמות/ ויקרא /וכן על עוד ספרים...בכל טקסט ...
דהיינו האם יש פיתרון בהחלף לכתוב שיחליף רק את הסוגריים בלי שאצטרך להעתיק את המילה בראשית?
עכ"פ תודה רבה! -
@הללוהו אמר בבקשה | פקודות מקרו בוורד.:
דהיינו האם יש פיתרון בהחלף לכתוב שיחליף רק את הסוגריים בלי שאצטרך להעתיק את המילה בראשית?
מה זה יעזור לך אם בחיפוש עדיין תצטרך לשים את המילה בראשית שמות וכו'.
אתה צריך להשתמש במאקרו עם לולאה שיעבור על רשימת מילים, ויחליף אותם, במקרה כזה קל לשים פעמיים את המשתנה שכרגע בטיפול. -
@www @אוריי אני צריך שאוכל להכניס הרבה סוגי מילים שבכל סוגריים שמופיע בהם אחד מהם הוא יתחלף מכזה ( ) לכזה { ] בתודה ,ודה בטח יעזור לי כי אני לא צריך לשנות בכל טקסט את החיפוש כי אותם המילים שאני רוצה שכשיהיו בסוגריים ישתנה הסוגריים, אני רוצה בכל בכל הטקסטים אותם המילים בחיפוש ...(הכולל ה-כ"ד ספרים ועוד אבל את זה אני כבר אכניס במאקרו קודם אם יש אפשרות כזו...)
ולא רק על מילת בראשית ..
תודה רבה לכל העוזרים והמתייגעים!!!
זה מאוד דחוף לי.@www אמר בבקשה | פקודות מקרו בוורד.:
במקרה כזה קל לשים פעמיים את המשתנה שכרגע בטיפול.
זה לא פעמיים זה הרבה יותר פעמים, כי יש לי רשימה ארוכה של ספרים שאצטרך להכניס לשם, אבל אם אין ברירה אחרת אז בטח שזה יעזור לי כי אני צריך את זה בכמויות של טקסטים וחייב לזה מקרו.
תודה. -
@הללוהו
אני יביא את הקוד שעשיתי יש עוד מה לשפר אבל הרעיון עובד- תיצור קובץ אקסל ותכניס בעמודה A את כל הערכים לחיפוש תקרא לו שם ותשמור ולסגור את הקובץ.
- תכניס בוורד את הקוד הבא
Sub HighlightMatchesAndSummarize() Dim strArray As String 'GET DATA FROM EXCEL Dim xlApp As Object Dim xlBook As Object Const strWorkBookName As String = "C:\Users\User\Documents\uri.xlsx" On Error Resume Next Set xlApp = GetObject(, "Excel.Application") If Err Then Set xlApp = CreateObject("Excel.Application") End If On Error GoTo 0 Set xlBook = xlApp.Workbooks.Open(FileName:=strWorkBookName) 'xlApp.Visible = True xlApp.Visible = False 'transpose excel cells in our arrays Dim w w = 1 Do While xlApp.ActiveSheet.range("a" & w) <> "" strArray = xlApp.ActiveSheet.range("A" & w).Value Search (strArray) w = w + 1 Loop Set xlBook = Nothing xlApp.Quit Set xlApp = Nothing End Sub Public Function Search(text As String) Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .text = "\((*)" & text & "(*)\)" .Replacement.text = "{\1" & text & "\2}" .Forward = True .Wrap = wdFindContinue .MatchWildcards = True End With Selection.Find.Execute Replace:=wdReplaceAll End Function
- תשנה בשורה 6 את המיקום של הקובץ אקסל שיצרת
ונשאר לך פשוט להפעיל את המאקרו
בהצלחה
-
@yossiz ולכל העוסקים במלאכה, נראה לי דבנידון דידן כהמשך לדברי yossiz לעיל, עדיף לעשות כך:
\((בראשית)(*)\)
החלף ב:
{\1\2}
ואפשר דעי"ז יהיה יותר קל להשאיר את המשתנה ורק לשנות את ה'חפש את'...
אשמח לתגובות, וכן לכל מי שיש לו עוד סוגי הצעות ופיתרונות אשמח לשמוע.בתודה.
-
@הללוהו אמר בבקשה | פקודות מקרו בוורד.:
@מנחם
אני לא הסתדרתי עם רישום מיקום האקסל , זהו דבר ראשון וע"ז עיכב אותי המאקרו , מקווה שרק זה הבעיה.
(ניסית את הנ"ל והסתדרת עם זה, שאתה שואל?)אז אני ינסה לעזור לך
אבל אין לי יותר מידי לפרט כי @אוריי נתן הוראות מפורטות
בשורה 6 בקוד הנ"ל
ואני מצרף את השורה הזאת כאןConst strWorkBookName As String = "C:\Users\User\Documents\uri.xlsx"
בשורה הזאת רשום שם של קובץ שזה נמצא במחשב של @אוריי
אתה צריך לשנות את זה לשם של קובץ במחשב שלךאבל אני עדיין לא מבין מה לא הסתדרת?
אולי אתה לא מצליח למצוא נתיב של קובץ ?
אולי העתק הדבק לא עובד טוב?
כמה שאתה מנסה יותר לפרט ולפרט
ככה אפשר לעזור לך הרבה יותר(ובהקשר למה שכתבת לנסות את הנ"ל, בשבילי הדברים כ"כ פשוטים שאני לא מצליח להבין מה יש לנסות את הנ"ל-כלומר "רישום מיקום האקסל")
תפרט בבקשה וישמחו לעזור לך