VBA Long (דוגמה) | מדריך שלב אחר שלב לסוג נתונים ארוך ב- Excel VBA

מהו סוג נתונים ארוך ב- VBA?

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

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

סוג הנתונים הארוך ב- Excel VBA יכול להחזיק את הערכים בין 0 ל -2, 147, 483, 647 למספרים חיוביים, ולמספר השלילי הוא יכול להחזיק בין 0 ל -2, 147, 483, 648.

סוג נתונים ארוך של VBA דורש 4 בתים של אחסון זיכרון במחשב שלך, זהו זיכרון משתנה מסוג נתונים כפול שלם (2 בתים) ומחצית מהזיכרון המשתנה כפול סוג נתונים (8 בתים)

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

דוגמאות לסוג נתונים ארוך של VBA

להלן דוגמאות לסוג הנתונים המצטיין VBA Long.

ניתן להוריד תבנית Excel זו של נתונים ארוכים מסוג VBA כאן - תבנית Excel של נתונים ארוכים מסוג VBA

דוגמה ארוכה VBA מס '1

ברגע שתכריז על סוג הנתונים המשתנה כ"ארוך ", תוכל להקצות את הערכים מ -2, 147, 483, 648 ל -2, 147, 483, 648.

לדוגמה, הכריז על המשתנה כסוג נתונים ארוך.

קוד:

 Sub Long_Example1 () Dim k כ- Long End Sub 

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

לקבלת מספר השורות הכולל בקוד גליון העבודה של Excel הוא "שורות. לספור"

קוד:

 תת Long_Example1 () עמום k כארוך k = שורות. Sub End סוף 

כעת הראה את הערך בתיבת ההודעה.

קוד:

 תת Long_Example1 () עמום k כארוך k = שורות. ספירת MsgBox k סוף משנה 

הפעל קוד זה ובדוק מה מספר השורות הכולל בגליון העבודה.

זה אומר שיש לנו יותר ממיליון שורות בגליון העבודה.

עכשיו להבנה טובה יותר, אשנה את סוג הנתונים מ- LONG ל- INTEGER.

קוד:

 תת ארוך_דוגמה 1 () עמעום k כשלם k = שורות. ספירת MsgBox k סוף משנה 

אם אני מריץ את קוד VBA אקבל את הודעת השגיאה כ"הצפה ".

הסיבה שקיבלנו את השגיאה הזו ב- VBA מכיוון שסוג הנתונים "מספר שלם" יכול להחזיק את הערכים מ -31768 עד 32767 בלבד. במקרה זה “שורות. ספירה "תחזיר את המספר העולה על מגבלת המשתנה" מספר שלם ".

הקצאת הערך של למעלה ממיליון למשתנה שיכול להכיל 32767 בלבד גורמת לשגיאת הצפה כאן.

דוגמה ארוכה VBA מס '2

מצא את השורה האחרונה באמצעות משתנה ארוך

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

נניח שיש לך נתונים המסתיימים ב 25000 שורות כפי שמוצג בתמונה למטה.

עכשיו אני יודע שמספר השורה האחרון ששימש הוא 25000, בשביל זה, אנחנו לא צריכים את סוג הנתונים "LONG" מכיוון שסוג הנתונים "INTEGER" יכול לתת לי את השורה האחרונה.

עיין בקוד שלמטה למידע שלך.

קוד:

 תת Long_Example1 () עמום k כשלם k = תאים (שורות. ספירה, 1). סוף (xlUp). שורה MsgBox k סוף משנה 

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

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

לדוגמא, אעלה את הנתונים לשורות 32768.

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

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

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

חלופות למשתנה ארוך של Excel VBA

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

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

למחרוזת

קוד:

 תת Long_Example2 () עמום k כמחרוזת k = 2147483648 MsgBox k סוף משנה 

למשתנה

קוד:

 תת Long_Example2 () עמום k כמשתנה k = 2147483648 MsgBox k סוף משנה 

כאשר אנו מריצים את הקודים לעיל, הוא יציג את המספר המוזכר.