כיצד נמצא את התא האחרון שיש בו נתונים?
פעמים רבות אנו מתבקשים למצוא את התא האחרון בעמודת נתונים מסוימת.
דוגמה לכך היא יצירת לולאה (LOOP) שרצה מהשורה הראשונה ועד סוף הנתונים.
את השורה הראשונה אנחנו יודעים למצוא (ברוב המקרים מקומה קבוע), אולם מהי שורת הנתונים האחרונה?
כיצד נידע כמה פעמים עלינו להריץ את הלולאה?
הקוד שלהלן מכניס לתוך המשתנה LastRow את מספרה של שורת הנתונים האחרונה בעמודה A:
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
אז מה בעצם יש לנו כאן?
בואו ננתח כל חלק בקוד:
Rows.count אומר לנו כמה שורות יש בגיליון – אם מדובר בקובץ בסיומת XLS יתקבל המספר 65,536 ואם מדובר בקובץ בסיומת XLSX יתקבל המספר 1,048,576. חשיבותו של הקוד בכך שאנו לא צריכים לדעת מראש באיזו גרסת אקסל מדובר, ובאיזה פורמט אקסל נשמר הקובץ – הקוד יחזיר תמיד את מספרה של השורה האחרונה בגיליון.
בואו נמשיך –
עכשיו נרצה לקבל את כתובתו של התא האחרון, ואת זה נעשה באמצעות הפקודה Cells, שבתוכה המספר שקיבלנו בפקודה הקודמת:
(Cells(Rows.Count, 1
אם אנחנו עובדים על קובץ בסיומת XLS תתקבל הכתובת A65536 ואם בגרסת XLSX , (או כל סיומת אחרת של גרסת הרצועה), A1048576
החלק השלישי –
End(xlUp)
הוא הקוד שנוצר בעת לחיצה על שילוב המקשים ctrl + חץ למעלה אשר אומר לאקסל לעלות עד לתא הנתונים הקרוב ביותר שיש בו ערך.
מכיוון שמיקמנו את הסמן בתא האחרון בעמודה A, וביקשנו מאקסל לעלות למעלה,
אזי תא הנתונים הקרוב ביותר שיש בו ערך, הוא בעצם התא האחרון בעמודה A שיש בו נתונים.
לפיכך, הערך שיוזן לתוך המשתנה LastRow הוא בעצם מספר השורה שבה נמצא הנתון האחרון.
את המשתנה הזה נוכל להכניס לתוך לולאת FOR כערך הסיום.
ואם נבקש לבחור את התא האחרון, במקום לשלוף את מספר השורה?
הקוד הבא יעשה את העבודה:
Cells(Rows.Count, 1).End(xlUp).Select
לעתים נרצה לבחור דווקא את התא שמתחתיו, לדוגמה – לצורך הזנת נתונים.
לשם כך, נכתוב את הקוד הבא:
Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select
באותו האופן, אפשר להתאים את הקוד גם לאיתור העמודה האחרונה:
Cells(1, Columns.Count).End(xlToLeft).Select
שימו לב, בין אם כיוון הגיליון מימין לשמאל ובין אם הוא משמאל לימין,
הפקודה xlToLeft תזיז את הסמן לכיוון עמודה A (גם אם בפועל, מדובר בתזוזה ימינה)
מעוניינים בטיפ נוסף?
עברו לקריאת המאמר שמסביר איך להוסיף גבול לטווח בפעולה אחת ב VBA
רוצים ללמוד VBA מספר? לחצו כאן
מעוניינים ללמוד בנוחות ביתכם בקורס מקוון? לחצו כאן