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

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

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

מיזוג גיליונות אקסל מרובים לקובץ אחד

עבור משימה זו, הנתונים מאוחסנים בגיליונות הבאים:

  • גיליון 1
  • גיליון2
  • גיליון 3

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

דרישות מוקדמות להפעלת הקוד

ישנם כמה דרישות מוקדמות להפעלת קוד VBA המפורטים להלן.

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

פתח קובץ אקסל חדש; ללחוץ Alt + F11 במקלדת כדי לפתוח את עורך Excel VBA. לאחר פתיחת העורך, הוסף מודול קוד חדש על ידי לחיצה על לְהַכנִיס לשונית בחלק העליון. בחר מודול כדי להכניס מודול חדש; זה המקום שבו תזין את קוד המאקרו VBA המופיע להלן.

instagram viewer

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

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

הנתונים המאוחדים יהיו זמינים בגיליון הנקוב מאוחד.

הפעלת קוד VBA

זה הזמן להפעיל את קוד המאקרו החדש שנשמר. העתק-הדבק את הקוד הזה למודול של עורך VBA:

Sub consolide_shts()
'להכריז על המשתנים השונים המשמשים בקוד ועל סוגי הנתונים של vba
Dim sht כגליון עבודה, sht1 כגליון עבודה, lastrow כמספר שלם, lastrow1 כמספר שלם
'השבת את הבהוב המסך וחלונות קופצים התראה במהלך הביצוע
עם אפליקציה
.ScreenUpdating = False
.DisplayAlerts = False
סיים עם
'אחסן את השם של חוברת העבודה הראשית במשתנה מאקרו. החלף את Test.xlsx בשם של חוברת העבודה הראשית שלך
הגדר wbk1 = חוברות עבודה("Test.xlsx")
הפעל את חוברת העבודה לפני ביצוע הפונקציות בה
wbk1.הפעל
הרץ לולאת vba for כדי לבדוק אם גיליון Consolidated כבר קיים. אם הוא קיים, לולאת for תמחק אותו.
לכל שט ב-wbk1.Sheets
אם sht. שם = "מאוחד" ואז sht. לִמְחוֹק
הרגע הבא
'הוסף גיליון חדש כדי לאחסן את הנתונים החדשים המאוחדים
דפי עבודה. לְהוֹסִיף. שם = "מאוחד"
'הוסף כמה כותרות לכל עמודה בודדת בגיליון המאוחד
With Sheets ("מאוחד")
.Range("a1").Value = "OrderDate"
.Range("b1").Value = "Region"
.Range("c1").Value = "Rep"
.Range("d1").Value = "פריט"
.Range("e1").Value = "יחידות"
.Range("f1").Value = "UnitCost"
.Range("g1").Value = "Total"

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

עבור i = 1 ל-wbk1.Worksheets. לספור
אם גיליונות (i).שם <> "מאוחד" אז
'ללכוד את השורה המאוכלסת האחרונה מגליונות הנתונים בחוברת העבודה
lastrow = Sheets (i).Range("a1").End (xlDown).Row
'תפוס את השורה המאוכלסת האחרונה בגיליון המאוחד
lastrow1 = wbk1.Sheets("Consolidated").Range("a1048576").End (xlUp).Row + 1

"העתק נתונים מגיליון המקור והדבק אותם בגיליון המאוחד
Sheets (i).Range("a2:g" & lastrow).Copy Destination:=Sheets("Consolidated").Range("a" & lastrow1)
סוף אם
הבא אני
הפעל את פונקציות Excel VBA לשימוש עתידי
עם אפליקציה
.ScreenUpdating = נכון
.DisplayAlerts = נכון
סיים עם

סיום משנה

קוד VBA מוסבר

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

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

בשלב הבא, עליך להגדיר את שם חוברת העבודה, המכיל את כל הנתונים שלך. החלף Test.xlsx עם השם והסיומת של שם חוברת העבודה שלך. הקפד להקיף את השם במרכאות.

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

גיליון חדש נוסף לחוברת העבודה הראשית כדי לאחסן את הנתונים המאוחדים. לאחר מכן, כותרות סטנדרטיות מעוצבות מראש מתווספות לגיליון זה. ניתן לשנות את ערכי הכותרות (כותרות העמודות) על ידי עדכון המידע שליד ההפניות לתאים בתוך מירכאות.

לדוגמה: .Range(“a1”) = “OrderDate” ניתן להחליף ב .Range(“a1”) = “OrderNumber”

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

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

קָשׁוּר: תכונות מתקדמות של Microsoft Excel שאתה חייב להכיר

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

איחוד גיליונות מרובים באמצעות מאקרו Excel VBA

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

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

5 מאקרו מגניבים של Microsoft Excel למיון נתונים

הפוך את ניהול הנתונים לפשוט עם פקודות המאקרו הללו של Excel.

קרא הבא

לַחֲלוֹקצִיוּץאימייל
נושאים קשורים
  • תִכנוּת
  • Microsoft Excel
  • מאקרו
  • תִכנוּת
על הסופר
גורב סיאל (21 מאמרים שפורסמו)

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

עוד מאת גורב סיאל

הירשם לניוזלטר שלנו

הצטרף לניוזלטר שלנו לקבלת טיפים טכניים, ביקורות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!

לחץ כאן כדי להירשם