בעיה | רווח מיתר בין אותיות
-
אני לא מבין מה אתה רקוצה שיעשו אפשר לעשות מקרו שימחק את כל התוים של רוח אבל אין מה שיסביר למקרו אופו אתה צריך רווח ואיפו לא (יכול להיות שאפשר גם לעשות שהוא ימחוק את כל הרווחים בכותרות אבל גם שם את הכל וגםביןמיליםככה)
אלא אם מי שעשה לא עשה רווך בין המילים אלא רווח בין האותיות ואז זה רק לשנות את זה ברווח בין אותיות -
@דוד-משה-1
אולי יש משהו עם מילון?כאילו, איזה סקריפט שמתקן טקסט ויש לו לקסיקון...
-
@יוסף-אלחנן כתב בבעיה | רווח מיתר בין אותיות:
אולי יש משהו עם מילון?
כאילו, איזה סקריפט שמתקן טקסט ויש לו לקסיקון...
קשה לי להאמין
גם אם כן כל מילה שהוא לא מכיר.... -
@דוד-משה-1
בסדר אז יהיה לו עבודה אחר כך...בכל מקרה, יהיה לו עבודה ליצור רווח חדש לבין המילים.
איך קראת לזה?! איפו?וזה פחות עבודה ולמחוק את הרווח מבין כל אות ותו...
אני רק חושב על ההוא שכתב את זה ככה, כמה קשה הוא עבד...
-
@יוסף-אלחנן כתב בבעיה | רווח מיתר בין אותיות:
כמה קשה הוא עבד...
אם הוא הבין בוורד יכול להיות שהוא עשה את זה אם פקודת מקרו -
@דוד-משה-1 כתב בבעיה | רווח מיתר בין אותיות:
אם הוא הבין בוורד יכול להיות שהוא עשה את זה אם פקודת מקרו
הוא עדיין היה צריך לכתוביוםטוב
שזה עדיין עבודה קשה...
תנסה...
-
@u88 אם אתה רוצה לעשות את מה ש @דוד-משה-1 הציע
@דוד-משה-1 כתב בבעיה | רווח מיתר בין אותיות:
אני לא מבין מה אתה רקוצה שיעשו אפשר לעשות מקרו שימחק את כל התוים של רוח אבל אין מה שיסביר למקרו אופו אתה צריך רווח ואיפו לא (יכול להיות שאפשר גם לעשות שהוא ימחוק את כל הרווחים בכותרות אבל גם שם את הכל וגםביןמיליםככה)
אז יש לך כאן קוד מאקרו לזה
Sub RemoveExtraSpacesBetweenLetters() Dim rng As Range Dim txt As String Dim newText As String Dim i As Long Set rng = Selection.Range txt = rng.Text newText = "" For i = 1 To Len(txt) If Mid(txt, i, 1) Like "[!א-ת]" Then newText = newText & Mid(txt, i, 1) If i < Len(txt) And Mid(txt, i + 1, 1) = " " Then i = i + 1 End If Else newText = newText & Mid(txt, i, 1) End If Next i rng.Text = newText End Sub
אתה יודע איך להפעיל את זה, כן?
-
@יוסף-אלחנן אולי אפשר שיחפש תו אחד ואחריו רווח וכו' אבל אם יש 2 תווים ואחריהם רווח לא
-
@יוסף-אלחנן כתב בבעיה | רווח מיתר בין אותיות:
@u88 מה הכוונה?
למה שיהיה שני תווים ואחר כך רווח?אמרת למעלה שהכל זה תו - רווח - תו - רווח...
או שזה כתוב:
י ו ם ט ו ב
לכן אם כתוב
י ו ם ט ו ב
אפשר לעשות חפש תו בודד שיש לפניו ואחריו רווח
-
-
@u88 אתה מצוטט אותי...
אני התכוונתי שאם הטקסט שלך הוא
י ו ם ט ו ב
אז אין (לי) איך לעזור לך...
אבל אם הטקסט הוא
י ו ם ט ו ב
אז אפשר לעשות שיבדוק האם יש רווח לפני הרווח...
כלומר, שיבדוק האם בין שני אותיות יש רק רווח אחד, אז הרווח ההוא מיותר, והקוד יריץ מחיקה, אבל אם יש רצף של שניים או שלוש רווחים (בהנחה והטקסט הוא )
י ו ם ט ו ב
אז הקוד ישאיר רווח בודד...
-
@יוסף-אלחנן בדיוק כמו השני
-
@יוסף-אלחנן אמרת שבאפשרות הזאת יש לך מה לעשות
-
@u88
אז בוא נראה מה יש לנו...יש קוד מאקרו אחד שבו הוא מזהה רווחים בודדים (כמו שכתבת לעייל, שיש לפניהם ולאחריהם אותיות)
ומוחק אותם!Sub DeleteSingleSpacesLeaveDoubleSpaces() Dim doc As Document Set doc = ActiveDocument Dim rng As Range For Each rng In doc.StoryRanges Do ' Find single spaces rng.Find.ClearFormatting rng.Find.Text = " " rng.Find.Replacement.Text = "" rng.Find.Forward = True rng.Find.Wrap = wdFindStop rng.Find.MatchWildcards = False If rng.Find.Execute Then ' Check if the next character is also a space If rng.Characters.Last.Next.Text = " " Then ' Move past the found space and continue searching rng.MoveStartUntil Cset:=" ", Count:=wdForward Else ' Replace the single space with an empty string rng.Text = Replace(rng.Text, " ", "") End If Else Exit Do End If Loop While rng.Find.Found ' Move to the next story range Set rng = rng.NextStoryRange Next rng ' Restore the selection to the end of the document doc.Range(doc.Content.End - 1, doc.Content.End).Select End Sub
ולאחר מכן אנו מריצים עוד קוד שיזהה רווחים כפולים (כפי שאמרת שיש),
ומוחק אותם ומותיר מהם רק רווח אחד.Sub NormalizeDoubleSpaces() Dim rng As Range Set rng = ActiveDocument.Range ' Replace multiple spaces with single space Do While InStr(rng.Text, " ") > 0 rng.Text = Replace(rng.Text, " ", " ") Loop ' Restore the selection to the end of the document rng.Collapse wdCollapseEnd rng.Select End Sub
בהצלחה!
תעדכן! -
@יוסף-אלחנן זה מוקח את כל הרווחים במסמך
אבל את
י ו ם ט ו ב
זה מסדר מצויין -
@u88 לא הבנתי...
אם יש לך כזה טקסט
י ו ם ט ו ב
אז אחרי שאתה מריץ קודם את הקוד הראשון - DeleteSingleSpaces
ייצא לךיום טוב
שהוא הרי מוחק את הרווחים הבודדים ולא את הכפולים.ואחר כך את הקוד השני - NormalizeDoubleSpaces
ייצא לך
יום טוב
והנה הוא מחק את הווחים הכפולים והשאיר רק רווח אחד...
אולי תוכל להעלות לכאן איזה קטע מהטקסט?...