בקשת מידע | איך מוסיפים מספר לכל הספרות שנמצאות בקובץ וורד?
-
@אלכסון כתב בבקשת מידע | איך מוסיפים מספר לכל הספרות שנמצאות בקובץ וורד?:
אם רק זה הבעיה תחפש את כל המספרים - תשנה עיצוב ותוסיף רווח אחרי כן,
חפש: ^# (ספרה כל שהיא) שנה עיצוב, אחר כך תעשה לעיצוב הזה החלף בלי שינוי (^&) + רווח.אשמח להוראות יותר ברורות, כי נתקעתי עם זה,
אציין שיש לקחת בחשבון גם מספרים דו ספרתיים. -
@אלף-שין סליחה טעיתי שכחתי למחוק מילת RANGE (הרי WORDS, הוא עצמו כבר RANGE)
Sub IncrementNumbers() Dim doc As Document Set doc = ActiveDocument Dim word As Range For Each word In doc.Words If IsNumeric(word.text) Then word.text = word.text + 1 End If Next word End Sub
הקוד הזה הוא עושה אותו בדיוק כמו של GPT רק בלי לולאה מיותרת.
ומ''מ הקוד הזה (וכן מה שהבאת מGPT) יש לו כמה בעיות, מלבד הבעיה שאתה כתבת, יש בעיה אחרת יותר חמורה, והיא שלפעמים נכנס ללולאה אין סופית, אם כתוב נקודה או פסיק או כל מיני תוים אחרים מיד אחרי המספר. -
@אלף-שין אני שמח לשמוע, רק אם אתה עושה מזה מאקרו - אל תתדגיש את המספרים אלא תעשה עיצוב שאתה בטוח שאין לך בקובץ, או שתוסיף אח"כ שלב של מחיקת רווחים כפולים. כי עכשיו אם יש לך משהו מודגש כבר (שהוא לא מספר) החיפוש יתפוס אותו ויוסיף רווח (מיותר) אחריו.
-
להלן פקודת המאקרו המלאה והטובה
[פקודה שמוסיפה ערך 1 לכל הספרות במסמך ללא תקלות!]
לא יאמן שצריך כזה פקודה ארוכה בשביל דבר כה פשוט!Sub CombinedMacros() Dim doc As Document Set doc = ActiveDocument Dim word As Range 'Increment Numbers For Each word In doc.Words If IsNumeric(word.Text) Then word.Text = word.Text + 1 End If Next word ' Original code for Macro1 Selection.WholeStory ' Additional code from the second macro Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting Selection.Find.Replacement.Font.Color = wdColorRed With Selection.Find .Text = "^#" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchKashida = False .MatchDiacritics = False .MatchAlefHamza = False .MatchControl = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll Selection.Find.ClearFormatting Selection.Find.Font.Color = wdColorRed Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "^#" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchKashida = False .MatchDiacritics = False .MatchAlefHamza = False .MatchControl = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.ClearFormatting Selection.Find.Font.Color = wdColorRed Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "" .Replacement.Text = "^&^s" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchKashida = False .MatchDiacritics = False .MatchAlefHamza = False .MatchControl = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll Selection.Font.Color = wdBlack Selection.MoveStart unit:=wdStory Selection.HomeKey wdStory ' This line moves the cursor to the beginning of the document End Sub
@pcinfogmach תוכל להוסיף את זה לשרשור הרלוונטי?
-
@אלף-שין כתב בבקשת מידע | איך מוסיפים מספר לכל הספרות שנמצאות בקובץ וורד?:
לא יאמן שצריך כזה פקודה ארוכה בשביל דבר כה פשוט!
באמת לא צריך פקודה כ''כ ארוכה, אפשר הרבה יותר קצר, ''עבודת נמלים בוורד" היה עושה את זה כך: [ואפשר עוד לקצר אותה יותר]:
Sub Macro2() With Selection.Find .ClearFormatting .text = "[0-9]{1,}" .Replacement.text = "" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchKashida = False .MatchDiacritics = False .MatchAlefHamza = False .MatchControl = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = True .Execute End With Do While Selection.Find.Found = True Selection.text = Selection.text + 1 Selection.Collapse wdCollapseEnd Selection.Find.Execute DoEvents Loop End Sub
כמו כן אפשר לעשות קוד אחר, אבל אני ממליץ יותר על הראשון (מנופה מכל מיני חששות, השני יעבוד טוב בדרך כלל, אבל מידי פעם עלול להיות הפתעות):
Sub IncrementNumbers() Dim i As Integer Dim w As Range For i = ActiveDocument.Words.Count To 1 Step -1 Set w = ActiveDocument.Words(i) If IsNumeric(w) Then If Right(w, 1) = " " Then w.End = w.End - 1 End If w.text = w.text + 1 End If Next i End Sub
באדיבות ''עבודת נמלים בוורד'' הבית שלך לאוטומציה במסמכים
-
@menajemmendel כתב בבקשת מידע | איך מוסיפים מספר לכל הספרות שנמצאות בקובץ וורד?:
באדיבות ''עבודת נמלים בוורד'' הבית שלך לאוטומציה במסמכים
תודה על כל העזרה!
אסמן כנפתר!
אגב אם הבנתי נכון באתר הזה נראה שזה לא תוכנה לרכישה אלא עבודת עימוד?. -
@אלף-שין כתב בבקשת מידע | איך מוסיפים מספר לכל הספרות שנמצאות בקובץ וורד?:
@menajemmendel כתב בבקשת מידע | איך מוסיפים מספר לכל הספרות שנמצאות בקובץ וורד?:
באדיבות ''עבודת נמלים בוורד'' הבית שלך לאוטומציה במסמכים
תודה על כל העזרה!
אסמן כנפתר!
אגב אם הבנתי נכון באתר הזה נראה שזה לא תוכנה לרכישה אלא עבודת עימוד?.יש שתי שירותים נפרדים שאין קשר בין אחד לשני:
- שירותי עימוד ספרים למי שרוצה. (וזה עימוד ''מאיר עיני חכמים'' כמו שאתה רואה בפרופיל שלי).
- בנוסף (בלי קשר לעימוד) למיקרים כאלה שאנשים צריכים עבודות שחוזורת על עצמם הרבה וכוד', שלעשות אותם באופן ידני לוקח מלא מלא זמן, אז יש את השירות של ''עבודת נמלים בוורד'' שיעשה עבורך את העבודה הנצרכת, ויחזיר לך מסמך מתוקן (כמובן אם לא הצלחתי לעשות את מה שרצית אין צורך לשלם כלום, ברור).
-
-