כיצד למחוק את כל השורה ב- Excel באמצעות VBA (דוגמאות)

הוספה ומחיקה של שורות היא חלק ממשימות יומיומיות נפוצות בעת עבודה עם Excel.

למרות שאתה יכול לעשות זאת בקלות מתוך גליון העבודה עצמו, לפעמים ייתכן שתרצה להשתמש במסלול ה- VBA כדי למחוק שורות ב- Excel. אלה יכולים להיות מחיקת שורה מסוימת, מספר שורות בבחירה, מחיקת שורות חלופיות או כאלה שיש בהן ערך ספציפי.

במדריך זה אראה לך כיצד למחוק שורות ב- Excel באמצעות VBA (תרחישים מרובים).

אז בואו נתחיל!

מחק שורה שלמה באמצעות VBA

כדי למחוק שורה שלמה ב- Excel באמצעות VBA, עליך להשתמש בשיטת EntireRow.Delete.

לדוגמה, אם ברצונך למחוק את כל השורה הראשונה בגליון עבודה, תוכל להשתמש בקוד שלהלן:

Sub DeleteEntireRow () שורות (1) .EntireRow.Delete End Sub

הקוד לעיל מציין תחילה את השורה שצריך למחוק (המתבצעת על ידי ציון המספר בסוגריים) ולאחר מכן משתמש בשיטת EntireRow.Delete כדי למחוק אותו.

תוכל גם למחוק שורות מרובות על ידי ציון השורות הללו בקוד.

לדוגמה, הקוד שלהלן ימחק שורה מספר 1, 5 ו -9 בגליון העבודה:

Sub DeleteEntireRow () שורות (9) .EntireRow.Delete Rows (5) .EntireRow.Delete Rows (1) .EntireRow.Delete End Sub

הקוד לעיל משתמש באותו היגיון, שבו הוא מציין את מספרי השורות ו- Excel ימחק את השורות האלה אחת אחת.

חשוב: כאשר אתה מוחק שורות עם משהו דומה לקוד לעיל, זכור להתחיל למחוק מלמטה ואז לעלות. לדוגמה, במקרה שתתחיל מלמעלה ותמחק תחילה את שורה 1, כל השורות שמתחתיה יועברו שורה אחת למעלה והמספור יהיה כבוי (מכיוון ששורה 5 תהפוך לשורה 4 וכן הלאה)

מחק את כל השורות בבחירה

אם ברצונך למחוק את כל השורות בטווח תאים שנבחר, תוכל להשתמש בקוד המאקרו של VBA להלן:

Sub DeleteEntireRow () Selection.EntireRow.Delete End Sub

הקוד לעיל חל על שיטת EntireRow.Delete על כל המבחר.

מחק שורות חלופיות (או מחק כל שורה שלישית/רביעית/רביעית)

לפעמים אתה עשוי לקבל זריקת נתונים שבה כל שורה שנייה (או שורות שלישיות, רביעיות או נ ') היא חסרת תועלת ויש למחוק אותה.

פעם עבדתי עם נתונים פיננסיים שבהם כל שורה שנייה הייתה ריקה וצריך למחוק אותה.

זה סוג התרחיש שבו VBA באמת זורחת.

להלן קוד ה- VBA שיעבור בין כל השורות בבחירה וימחק כל שורה שנייה:

Sub DeleteAlternateRows () RCount = Selection.Rows.Count For i = RCount to 1 Step -2 Selection.Rows (i) .EntireRow.Delete Next i End Sub

תן לי להסביר כיצד קוד VBA זה עובד.

ראשית, השתמשתי במשתנה RCount כדי לקבל את מספר השורות הכולל בבחירה.

אז השתמשתי בלולאה For Next כדי להריץ את זה כמה פעמים שיש שורות רבות. לדוגמה, אם יש 12 שורות, הלולאה הזו תפעל מ -12 ל -1 (כלומר 12 פעמים). חשוב להריץ זאת מהשורה האחרונה בבחירה לראשונה מכיוון שאיננו רוצים שמספרי השורות ישתנו כאשר מחיקה נמחקת.

כמו כן, שלב -2 משמש מכיוון שאנו צריכים למחוק כל שורה אחרת (מלמטה למעלה). במידה ותרצה למחוק כל שורה שלישית, תוכל להשתמש ב- -3.

בתוך לולאת VBA, השתמשתי בשיטת Selection.Rows (i) .EntireRow.Delete כדי למחוק כל שורה חלופית.

מחק שורות ריקות עם VBA

תוכל גם להשתמש בשיטת EntireRow.Delete כדי למחוק את כל השורות הריקות.

להלן קוד VBA שיבחר תאים ריקים במערך הנתונים שנבחר וימחק את השורה כולה.

Sub DeleteBlankRows () Selection.SpecialCells (xlCellTypeBlanks) .EntireRow.Delete End Sub Sub

הקוד לעיל משתמש במאפיין SpecialCells כדי לבחור ולמחוק את כל התאים הריקים. זוהי אותה שיטה המאפשרת לנו גם להשתמש בתיבת הדו -שיח 'עבור למיוחד' כדי לבחור את כל התאים הריקים.

לאחר שתאים ריקים אלה מזוהים באמצעות SpecialCell, אלה נמחקים בשיטת EntireRow.Delete.

הערה: שיטה זו בוחרת תאים ריקים ואינם בודקים אם כל השורה ריקה או לא. אז אם תא אחד ריק בשורה, זה עדיין ימחק את כל השורה.

מחק שורות עם מילה/ערך ספציפי

תוכל גם להשתמש בקוד VBA פשוט כדי לעבור בין כל תא בטווח שנבחר ולמחוק את כל השורות שבהן התא מכיל טקסט או ערך ספציפי.

לדוגמה, נניח שיש לך מערך נתונים ואני רוצה למחוק את כל התאים עם הטקסט מדפסת בעמודה 2 של הבחירה.

להלן הקוד שיעשה זאת:

תת DeleteRowswithSpecificValue () עבור i = Selection.Rows.Count לשלב 1 אם תאים (i, 2) .Value = "מדפסת" ואז תאים (i, 2) .EntireRow.Delete סוף אם הבא i סוף Sub

הקוד הנ"ל סופר תחילה את מספר השורות הכולל בבחירה. זה יוודא שהלולאה מופעלת רק פעמים רבות אלה. לאחר מכן הוא משתמש ב'לולאה הבאה 'כדי לעבור בין כל התאים בעמודה 2.

המשפט IF THEN ELSE משמש לאחר מכן לבדיקת הערך בכל תא בעמודה 2. ובמידה והערך/הטקסט תואם את הטקסט שצוין (שהוא 'מדפסת' בדוגמה זו).

בדוגמה זו, בדקתי אם הטקסט תואם מחרוזת ספציפית או לא. אתה יכול לעשות זאת גם עם ערכים. לדוגמה, תוכל למחוק את כל השורות שבהן ערך המכירה קטן מ- 1000 או יותר מ- 1000.

הערה: דבר שחשוב לציין כאן הוא שהלולאה עוברת ממנה Selection.Rows.Count ל- 1 כדי לוודא שכאשר שורה נמחקת, זה לא משפיע על השורות שמעליה.

כיצד להשתמש בקוד VBA זה

כעת הרשה לי להראות לך כיצד להשתמש בכל הקודים המוזכרים במדריך זה למחיקת השורה כולה.

עליך להעתיק ולהדביק קודים אלה במודול בעורך VB של Excel. לאחר שתעתיק את הקודים האלה, תוכל להריץ את קודי המאקרו.

להלן השלבים להעתיק ולהדביק קודי VBA אלה במודול:

  1. החזק את מקש ALT ולחץ על מקש F11 (או פונקציה + אופציה + F11 ב- Mac). פעולה זו תפתח את עורך VB
  2. בעורך VB תמצא את סייר הפרויקטים בצד שמאל. אם אינך רואה אותו, עבור לאפשרות תצוגה ולאחר מכן לחץ על סייר הפרויקטים.
  3. לחץ לחיצה ימנית על כל אובייקט בסייר הפרויקטים (עבור חוברת העבודה שבה ברצונך להריץ את הקוד).
  4. עבור אל הוספה ולאחר מכן לחץ על מודול. זה יכניס מודול חדש לחוברת העבודה
  5. העתק והדבק את הקודים שלעיל במודול.

וכדי להריץ את הקודים האלה, אתה יכול למקם את הסמן בכל מקום בקוד (שברצונך להריץ) ולחץ על מקש F5 (או לחץ על המשולש הירוק בסרגל הכלים של VBA).

כתבתי גם הדרכה מפורטת על דרכים שונות להפעלת קודי מאקרו של VBA ב- Excel.

במקרה שאתה צריך להשתמש בכל אחד מהקודים האלה לעתים קרובות למדי, תוכל גם לשקול להוסיף אותם לחוברת העבודה המאקרו האישית ולאחר מכן ל- QAT. בדרך זו, הקוד יהיה זמין עבורך בכל אחד מחוברות העבודה שלך בלחיצה אחת.

אז אלו היו כמה קודי VBA בהם תוכל להשתמש כדי למחוק שורות שלמות ב- Excel (בתרחישים שונים). ניתן ליישם את אותו ההיגיון גם אם תרצה למחוק עמודות במקום שורות (עם ההתאמה המתאימה בדוגמאות הקוד).

מקווה שמצאת הדרכה שימושית!

תוכל לעזור בפיתוח האתר, שיתוף הדף עם החברים שלך

wave wave wave wave wave