התקשרו אלינו: 052-2928949

התקשרו אלינו: 052-2928949

מציאת התא האחרון שיש בו נתונים

VBA Tip

מציאת התא האחרון שיש בו נתונים

VBA Tip

כיצד נמצא את התא האחרון שיש בו נתונים?

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

דוגמה לכך היא יצירת לולאה (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 מספר? לחצו כאן

מעוניינים ללמוד בנוחות ביתכם בקורס מקוון? לחצו כאן

 

דילוג לתוכן