הסבר | פיתרון לבאג מחיקת מעבר מיקטע "העמוד הבא"
-
בוורד יש שני סוגי מעברי מיקטע, 1. העמוד הבא 2. רציף.
הבעיה בקצרה:
כאשר מעבר מקטע "רציף" ומעבר "עמוד הבא" נמצאים אחד ליד השני, וורד "ממזג" אותם. וכשמנסים למחוק את העמוד הבא, התוכנה מוחקת את המעבר הרציף ומשאירה את קפיצת העמוד פעילה, כך שהעמוד הריק נשאר תקוע ואי אפשר למחוק אותו בכוח בשום אופן.הפיתרון (שינוי ההגדרה ואחר כך מחיקה): במקום לנסות למחוק את המעבר, פשוט משנים את סוג המעבר שכבר קיים: שמים את סמן העכבר בתחילת העמוד החדש (העמוד שקפץ למטה), נכנסים לכרטיסיית פריסה (Layout) ופותחים את החלון המלא של הגדרת עמוד (Page Setup) דרך החץ הקטן בפינה, בחלון שנפתח, עוברים ללשונית פריסה (Layout), משנים את ההגדרה של "תחילת מקטע" מ"עמוד חדש" ל"רציף" ולוחצים אישור. הטקסט יקפוץ חזרה למעלה והעמוד הריק יעלם, ואז יהיו שם שני מעברי רציף ואפשר למחוק אחד מהם.
מצורף מאקרו פשוט שעושה את כל זה בלחיצת מקש, יש להעמיד את הסמן לאחר המיקטע [בתחילת עמוד הבא].Sub המרה_ומחיקה_של_מעבר_המקטע_הנוכחי() Dim currentSection As section Dim prevSectionRange As Range ' תפיסת המקטע שבו ממוקם הסמן כרגע Set currentSection = Selection.Sections(1) ' בדיקה במידה והסמן נמצא במקטע הראשון במסמך If currentSection.Index = 1 Then MsgBox "הסמן נמצא במקטע הראשון במסמך, אין מעבר מקטע קודם למחוק.", vbExclamation, "הודעה" Exit Sub End If ' בדיקה אם המקטע מוגדר כ'עמוד הבא' (או עמוד זוגי / אי-זוגי) If currentSection.pageSetup.SectionStart = wdSectionNewPage Or _ currentSection.pageSetup.SectionStart = wdSectionOddPage Or _ currentSection.pageSetup.SectionStart = wdSectionEvenPage Then ' 1. שינוי הגדרת המקטע לרציף currentSection.pageSetup.SectionStart = wdSectionContinuous ' 2. מחיקת תו מעבר המקטע (התו הנסתר בסוף המקטע הקודם) Set prevSectionRange = ActiveDocument.Sections(currentSection.Index - 1).Range prevSectionRange.Characters.Last.Delete MsgBox "מעבר העמוד שונה לרציף ונמחק בהצלחה!", vbInformation, "הצלחה" Else ' הודעה במידה והסמן לא תפס מעבר עמוד MsgBox "הסמן אינו נמצא במקטע המוגדר כ'עמוד הבא'.", vbExclamation, "לא נמצא מעבר עמוד" End If End Sub -
בוורד יש שני סוגי מעברי מיקטע, 1. העמוד הבא 2. רציף.
הבעיה בקצרה:
כאשר מעבר מקטע "רציף" ומעבר "עמוד הבא" נמצאים אחד ליד השני, וורד "ממזג" אותם. וכשמנסים למחוק את העמוד הבא, התוכנה מוחקת את המעבר הרציף ומשאירה את קפיצת העמוד פעילה, כך שהעמוד הריק נשאר תקוע ואי אפשר למחוק אותו בכוח בשום אופן.הפיתרון (שינוי ההגדרה ואחר כך מחיקה): במקום לנסות למחוק את המעבר, פשוט משנים את סוג המעבר שכבר קיים: שמים את סמן העכבר בתחילת העמוד החדש (העמוד שקפץ למטה), נכנסים לכרטיסיית פריסה (Layout) ופותחים את החלון המלא של הגדרת עמוד (Page Setup) דרך החץ הקטן בפינה, בחלון שנפתח, עוברים ללשונית פריסה (Layout), משנים את ההגדרה של "תחילת מקטע" מ"עמוד חדש" ל"רציף" ולוחצים אישור. הטקסט יקפוץ חזרה למעלה והעמוד הריק יעלם, ואז יהיו שם שני מעברי רציף ואפשר למחוק אחד מהם.
מצורף מאקרו פשוט שעושה את כל זה בלחיצת מקש, יש להעמיד את הסמן לאחר המיקטע [בתחילת עמוד הבא].Sub המרה_ומחיקה_של_מעבר_המקטע_הנוכחי() Dim currentSection As section Dim prevSectionRange As Range ' תפיסת המקטע שבו ממוקם הסמן כרגע Set currentSection = Selection.Sections(1) ' בדיקה במידה והסמן נמצא במקטע הראשון במסמך If currentSection.Index = 1 Then MsgBox "הסמן נמצא במקטע הראשון במסמך, אין מעבר מקטע קודם למחוק.", vbExclamation, "הודעה" Exit Sub End If ' בדיקה אם המקטע מוגדר כ'עמוד הבא' (או עמוד זוגי / אי-זוגי) If currentSection.pageSetup.SectionStart = wdSectionNewPage Or _ currentSection.pageSetup.SectionStart = wdSectionOddPage Or _ currentSection.pageSetup.SectionStart = wdSectionEvenPage Then ' 1. שינוי הגדרת המקטע לרציף currentSection.pageSetup.SectionStart = wdSectionContinuous ' 2. מחיקת תו מעבר המקטע (התו הנסתר בסוף המקטע הקודם) Set prevSectionRange = ActiveDocument.Sections(currentSection.Index - 1).Range prevSectionRange.Characters.Last.Delete MsgBox "מעבר העמוד שונה לרציף ונמחק בהצלחה!", vbInformation, "הצלחה" Else ' הודעה במידה והסמן לא תפס מעבר עמוד MsgBox "הסמן אינו נמצא במקטע המוגדר כ'עמוד הבא'.", vbExclamation, "לא נמצא מעבר עמוד" End If End Sub -
-
@צבי-צ אתה צודק על הדרך איך לעשות מלכתחילה, אבל אנחנו מדברים על מקרה שקיבלת מסמך שיש שם כבר מעבר עמוד ואתה רוצה למחוק את זה שלא יהיה כלל מעבר עמוד רק ימשיך באותו עמוד, או אם אתה רוצה לעשות במקום זה דרך הסגנון כמו שהצעת, כאן הבעיה כבר קיימת ולא יעזור הסגנון.
-
@מניין
אם ככה דבר ראשון תעשה החלף מעבר עמוד ל$$$ או כל סימן אחר,
אח"כ תעבור על הסימונים ותעשה סגנונות לפי הצורך.זה כמובן לא סותר את המאקרו המצוין שלך, כל אחד והנוחות וההרגל שלו.
שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.
נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.
בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗
הרשמה התחברות
