כיצד לשלב קבצי Excel מרובים לחוברת עבודה אחת של Excel

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

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

עם זאת, קוד VBA פשוט יכול לעשות זאת תוך מספר שניות.

שלב קבצי Excel מרובים לקובץ אחד

להלן הקוד שיכול לשלב מספר חוברות עבודה של Excel בתיקיה שצוינה לחוברת עבודה אחת של Excel:

Sub ConslidateWorkbooks () 'נוצר על ידי Sumit Bansal מ- https://trumpexcel.com Dim FolderPath כמחרוזת Dim קובץ בשם String Dim Sheet כ- גליון עבודה Application.ScreenUpdating = False FolderPath = Environ ("userprofile") & "DesktopTest" קובץ שם = Dir ( FolderPath & "*.xls*") האם בזמן קובץ "" חוברות עבודה. פתיחת שם קובץ: = FolderPath ושם קובץ, ReadOnly: = נכון לכל גיליון ב- ActiveWorkbook.Sheets Sheet.Copy After: = ThisWorkbook.Sheets (1) חוברות עבודה של גיליון הבא (שם קובץ). Close Filename = Dir () יישום לולאה. ScreenUpdating = Sub End True

כיצד להשתמש בקוד זה?

להלן השלבים לשימוש בקוד זה:

  • הכנס את כל קבצי האקסל שברצונך לשלב לתיקייה. לצורך הדרכה זו, יצרתי תיקיה בשם Test ויש בה שישה קבצים (4 חוברות עבודה של Excel ו- 1 Power Point ו- Word כל אחת).
  • פתח חוברת עבודה חדשה של Excel.
  • הקש ALT + F11 (או עבור למפתח -> קוד -> Visual Basic). פעולה זו תפתח את עורך Visual Basic.
  • בעורך VB, בעורך הפרויקטים, לחץ באמצעות לחצן העכבר הימני על כל אחד מהאובייקטים של חוברת העבודה ועבור אל הוספה -> מודול. זה יכניס מודול לחוברת העבודה.
  • לחץ פעמיים על המודול. זה יפתח את חלון הקוד מימין.
  • העתק והדבק את הקוד למעלה בחלון הקוד.
  • בקוד, עליך לשנות את שורת הקוד הבאה:
    FolderPath = Environ ("userprofile") & "DesktopTest"

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

  • מקם את הסמן בכל מקום בקוד ולחץ על כפתור ההפעלה הירוק באפשרויות סרגל הכלים (או הקש על מקש F5).

פעולה זו תפעיל את הקוד וכל גליונות העבודה מכל קבצי Excel בתיקייה יתאגדו לחוברת עבודה אחת.

כיצד קוד זה פועל?

  • הקוד משתמש בפונקציית DIR כדי להוציא את שמות הקבצים מהתיקיה שצוינה.
  • השורה הבאה מקצה את שם קובץ האקסל הראשון למשתנה 'שם קובץ'.
    שם קובץ = Dir (FolderPath & "*.xls*")
  • לאחר מכן משתמשים בלולאת Do While כדי לבדוק אם כל הקבצים כוסו.
  • בתוך לולאת 'Do While', הלולאה 'For Every' משמשת להעתיקת כל גליונות העבודה לחוברת העבודה שבה אנו מריצים את הקוד.
  • בסוף Do Loop משתמשים בשורת הקוד הבאה: שם קובץ = Dir (). הוא מקצה את שם קובץ ה- Excel הבא למשתנה שם הקובץ והלולאה מתחילה מחדש.
  • כאשר כל הקבצים מכוסים, פונקציית DIR מחזירה מחרוזת ריקה, כלומר כאשר הלולאה מסתיימת.

להלן הסבר על הפונקציה DIR בספריית MSDN:

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

האם אי פעם ניסית משהו מסוג זה באמצעות VBA? שתף במה שעשית וכולנו יכולים ללמוד מכך.

חסוך זמן מטורף באמצעות VBA. בדוק את קורס VBA של Excel.

תוכל לעזור בפיתוח האתר, שיתוף הדף עם החברים שלך

wave wave wave wave wave