Masoudhosseini
کاربر تازه وارد
- تاریخ عضویت
- 25 جولای 2018
- نوشتهها
- 15
- لایکها
- 2
- سن
- 33
آموزش ترکیب کردن چندین فایل اکسل
در این پست قصد داریم آموزش ترکیب کردن چندین فایل اکسل را بصورت کامل خدمت شما عزیزان و کاربران علاقه مند به یادگیری سایت آموزشی اکسل لرن ارائه دهیم.
در ابتدا می بایست به این موضوع اشاره کرد که عمل ترکیب کردن چندین فایل اکسل به دو صورت قابل انجام می باشد :
آموزش ترکیب کردن چندین فایل اکسل با استفاده از ابزارهای اکسل
آموزش ترکیب کردن چندین فایل اکسل با استفاده از ماکرونویسی
اجازه بدید قبل از اینکه شروع به آموزش روش دوم (ماکرونویسی) جهت ترکیب کردن چندین فایل اکسل کنیم ، ضعف های روش اول رو یکبار با هم مرور کنیم :
قبل از اینکه شروع به کدنویسی کنیم یکبار سناریو ترکیب کردن چندین فایل اکسل را با هم مرور میکنیم :
توضیحات دستورات فوق :
سپس تک تک شیت های اکسل باز شده را با استفاده از دستورات زیر کپی و به فایل اکسل تجمیع منتقل میکنیم :
در انتها فایل اکسل باز شده را میبندیم و میریم سراغ سایر فایل های اکسل موجود داخل آدرس Path :
سوال : پس کاربرد حلقه Do while در این دستورات چه خواهد بود ؟
پاسخ : سوال خیلی به جایی بود ، مگر قرار نبود ما چندین فایل اکسل را با هم ترکیب کنیم ؟ اگر من از حلقه Do while کمک نمیگرفتم هیچوقت فایل اکسل دوم و به همین ترتیب سوم ، چهارم و .. برای من باز نمی شدند تا عمل انتقال صورت بگیرد ، پس وجود حلقه Do while الزامی بود و اما اینکه چرا از حلقه Do while استفاده کردم باید خدمتتان عرض کنم بنده با این فرض جلو آمدم که تعداد فایل های موجود اکسل قابل دسترسی نبوده و یا به عبارتی ثابت نخواهد بود.
سوال : چرا از حلقه For Each استفاده کردیم ؟
پاسخ : قرارمون این بود که پس از باز شدن فایل اکسل ، تمام شیت های فایل اکسل کپی و به اکسل تجمیع منتقل شود از این رو بهترین حلقه برای این کار حلقه For Each بود .
سوال : کاربرد دستور زیر چیست ؟
FileName = Dir()
پاسخ : پیشنهاد میکنم برای پاسخ به این قسمت پست آموزشی “آموزش و کاربرد تابع DIR در ماکرونویسی اکسل” را مطالعه کنید.
منبع آموزشی : سایت آموزشی اکسل لرن
در این پست قصد داریم آموزش ترکیب کردن چندین فایل اکسل را بصورت کامل خدمت شما عزیزان و کاربران علاقه مند به یادگیری سایت آموزشی اکسل لرن ارائه دهیم.
در ابتدا می بایست به این موضوع اشاره کرد که عمل ترکیب کردن چندین فایل اکسل به دو صورت قابل انجام می باشد :
- استفاده از ابزارهای اکسل
- استفاده از کدهای VBA و یا به اصطلاح ماکرونویسی در محیط اکسل
- برای اینکه بتوانید چندین فایل اکسل را با استفاده از ابزارهای اکسل ترکیب کنید ، تنها کافیه فایل اکسل را اجرا و سپس شیت های مدنظرتان را با نگه داشتن کلید ترکیبی Ctrl انتخاب کنید .
- سپس روی یکی از شیت های انتخاب شده راست کلیک و گزینه Move or Copy.. را انتخاب نمایید .
- با انتخاب گزینه Move or Copy.. پنجره ای در اختیار ما قرار میگیرد که در قسمت Move Select Sheets to book با مشخص کردن نام فایل اکسل تجمیع،شیت های انتخاب شده به فایل اکسل تجمیع منتقل گردد .
آموزش ترکیب کردن چندین فایل اکسل با استفاده از ماکرونویسی
اجازه بدید قبل از اینکه شروع به آموزش روش دوم (ماکرونویسی) جهت ترکیب کردن چندین فایل اکسل کنیم ، ضعف های روش اول رو یکبار با هم مرور کنیم :
- با افزایش تعداد فایل های اکسل زمانی که صرف ترکیب میشود نیز بدون شک افزایش می یابد.
- با افزایش تعداد فایل های اکسل امکان خطا نیز افزایش می یابد.
قبل از اینکه شروع به کدنویسی کنیم یکبار سناریو ترکیب کردن چندین فایل اکسل را با هم مرور میکنیم :
- ابتدا فایل اکسل را باز میکنیم.
- تمام شیت های اکسل باز شده را کپی و سپس به فایل اکسل تجمیع منتقل میکنیم.
- فایل اکسل را بسته و فایل اکسل بعدی را برای طی کردن موارد ۱ و ۲ آماده میکنیم.
کد:
Sub Excellearn()
Dim FileName As String
Dim Path As String
Dim Sheet As Worksheet
Path = "D:\excellearn\"
FileName = Dir("D:\excellearn\" & "*.xlsx")
Do While FileName <> ""
Workbooks.Open FileName:=Path & FileName
For Each Sheet In ActiveWorkbook.Sheets
Sheet.Copy after:=ThisWorkbook.Sheets(۱)
Next Sheet
Workbooks(FileName).Close
FileName = Dir()
Loop
End Sub
توضیحات دستورات فوق :
- ابتدا یک متغیر به نام FileName از نوع رشته (String) جهت برگرداندن نام فایل های اکسلی که قرار است جهت تجمع انتخاب شوند ایجاد میکنیم.
- متغیر دوم را مجددا از نوع رشته (String) جهت برگرداندن آدرس فایل های اکسل در درایو ویندوز و با نام Path ایجاد میکنیم .
- متغیر سوم را با نام Sheet از Worksheet جهت بررسی شیت های فایل های اکسل ایجاد میکنیم.
کد:
Workbooks.Open FileName:=Path & FileName
سپس تک تک شیت های اکسل باز شده را با استفاده از دستورات زیر کپی و به فایل اکسل تجمیع منتقل میکنیم :
کد:
For Each Sheet In ActiveWorkbook.Sheets
Sheet.Copy after:=ThisWorkbook.Sheets(۱)
Next Sheet
در انتها فایل اکسل باز شده را میبندیم و میریم سراغ سایر فایل های اکسل موجود داخل آدرس Path :
کد:
Workbooks(FileName).Close
سوال : پس کاربرد حلقه Do while در این دستورات چه خواهد بود ؟
پاسخ : سوال خیلی به جایی بود ، مگر قرار نبود ما چندین فایل اکسل را با هم ترکیب کنیم ؟ اگر من از حلقه Do while کمک نمیگرفتم هیچوقت فایل اکسل دوم و به همین ترتیب سوم ، چهارم و .. برای من باز نمی شدند تا عمل انتقال صورت بگیرد ، پس وجود حلقه Do while الزامی بود و اما اینکه چرا از حلقه Do while استفاده کردم باید خدمتتان عرض کنم بنده با این فرض جلو آمدم که تعداد فایل های موجود اکسل قابل دسترسی نبوده و یا به عبارتی ثابت نخواهد بود.
سوال : چرا از حلقه For Each استفاده کردیم ؟
پاسخ : قرارمون این بود که پس از باز شدن فایل اکسل ، تمام شیت های فایل اکسل کپی و به اکسل تجمیع منتقل شود از این رو بهترین حلقه برای این کار حلقه For Each بود .
کد:
For Each Sheet In ActiveWorkbook.Sheets
Sheet.Copy after:=ThisWorkbook.Sheets(۱)
Next Sheet
سوال : کاربرد دستور زیر چیست ؟
FileName = Dir()
پاسخ : پیشنهاد میکنم برای پاسخ به این قسمت پست آموزشی “آموزش و کاربرد تابع DIR در ماکرونویسی اکسل” را مطالعه کنید.
منبع آموزشی : سایت آموزشی اکسل لرن