pinkys brain1
New member
אופטימיזיות קוד ב-VBA
שלום לכולם.
קראתי דף של מייקרוסופט שמסביר איך אפשר לייעל קודי VBA, ואחת ההצעות הייתה להשתמש כמה שפחות במעברים בין worksheets ולבצע הראשית הקוד העתקה למערך datarange, לדוגמא:
לבצע את הפעולות בין הטבלאות ובסוף להעתיק חזרה את הנתונים ל-worksheet הרלוונטי.
מספר שאלות:
א. האם הפרוצדורה הזאת מעתיקה את נתוני הטבלה בדיוק באותו סדר שבה הערכים מופיעים בגיליון המקורי?
ב. האם ההמלצה תקפה גם אם יש לי, נניח, 3 גיליונות שונים - שבכל גיליון יש טבלאות, ואני צריך לבצע חיתוכים והשוואות בין הטבלאות השונות? (כלומר, לעשות את כל החיתוכים וההשוואות בין מערך a למערך b במקום בין גיליון 1 לבין גיליון 2, ואז להעתיק את נתוני "מערך a" לטבלת היעד הסופית שלי?)
ג. מתי רצוי להשתמש במערך כזה? (כלומר, אם יש לי טבלה שיש בה מעל כמה שורות ומעל כמה עמודות?)
ד. האם ניתן לחתוך נתונים ממערך ולהעתיק חזרה רק חלק ממנה? (לדוגמא, להעתיק מהגיליון המקורי 3 עמודות, לעשות בעמודה השלישית כל מיני חישובים, ואז להחזיר לגיליון המקורי רק את העמודה השלישית (כי בעמודה 1,2 לא השתנה כלום מההעתקה המקורית)?
ה. האם אפשר להשתמש בפונקציות כמו ,,index, vlookup,countifs וכו' על המערך הזה? או שכל פונקציה צריך לממש בקוד עצמו?
תודה וסוף שבוע מעולה!
שלום לכולם.
קראתי דף של מייקרוסופט שמסביר איך אפשר לייעל קודי VBA, ואחת ההצעות הייתה להשתמש כמה שפחות במעברים בין worksheets ולבצע הראשית הקוד העתקה למערך datarange, לדוגמא:
קוד:
Dim DataRange As Variant
' Read all the values at once from the Excel grid and put them into an array.
DataRange = Range("A1:C10000").Value2
לבצע את הפעולות בין הטבלאות ובסוף להעתיק חזרה את הנתונים ל-worksheet הרלוונטי.
מספר שאלות:
א. האם הפרוצדורה הזאת מעתיקה את נתוני הטבלה בדיוק באותו סדר שבה הערכים מופיעים בגיליון המקורי?
ב. האם ההמלצה תקפה גם אם יש לי, נניח, 3 גיליונות שונים - שבכל גיליון יש טבלאות, ואני צריך לבצע חיתוכים והשוואות בין הטבלאות השונות? (כלומר, לעשות את כל החיתוכים וההשוואות בין מערך a למערך b במקום בין גיליון 1 לבין גיליון 2, ואז להעתיק את נתוני "מערך a" לטבלת היעד הסופית שלי?)
ג. מתי רצוי להשתמש במערך כזה? (כלומר, אם יש לי טבלה שיש בה מעל כמה שורות ומעל כמה עמודות?)
ד. האם ניתן לחתוך נתונים ממערך ולהעתיק חזרה רק חלק ממנה? (לדוגמא, להעתיק מהגיליון המקורי 3 עמודות, לעשות בעמודה השלישית כל מיני חישובים, ואז להחזיר לגיליון המקורי רק את העמודה השלישית (כי בעמודה 1,2 לא השתנה כלום מההעתקה המקורית)?
ה. האם אפשר להשתמש בפונקציות כמו ,,index, vlookup,countifs וכו' על המערך הזה? או שכל פונקציה צריך לממש בקוד עצמו?
תודה וסוף שבוע מעולה!