این شگرد توضیح می دهد که چگونه می توان لیستی از فایل های یک فولدر را ایجاد کرد و آنها را در یک شیت نمایش داد.
این تکنیک از یک تابع Excel 4 XLM در یک فرمول تعریف شده استفاده می کند زیرا این ساده ترین راه برای ایجاد لیستی از فایل ها است. دقت کنید که اگر بخواهید از کدنویسی VBA برای این کار استفاده کنید باید یک ماکرو پیچیده را بنویسید.
یک فایل اکسل را باز کرده و کارهای زیر را برای ایجاد یک فرمول تعریف شده انجام دهید.
1. Formulas➜Define Name را انتخاب کنید تا پنجره New Name نمایش داده شود.
2. در فیلد Name عبارت FileList را تایپ کنید.
3. عبارت زیر را در فیلد Refers To وارد کنید.
=FILES(Sheet1!$A$1) |
4. بر روی دگمه OK کلیک کنید تا پنجره New Name بسته شود.
دقت کنید که تابع FILES یک تابع نرمال شیت نیست. بلکه یک تابع XLM است که در ماکروشیت های قدیمی استفاده می شد. این تابع یک متغیر (مسیر یک فولدر و مشخصات فایل) را گرفته و نام فایل های این مسیر که دارای مشخصات گفته شده هستند را بر می گرداند.
توابع نرمال شیت نمی توانند از توابع XLM استفاده کنند اما توابع تعریف شده می توانند از آنها استفاده کنند.
پس از تعریف فرمول تعریف شده، مسیر یک فولدر و مشخصات فایل را مطابق عبارت زیر در سلول A1 وارد کنید. برای مثال:
E:\Backup\Excel\*.xl*
سپس این فرمول اولین فایل یافت شده را نشان می دهد:
=INDEX(FileList, 1) |
اگر متغیر دوم را به 2 تغییر دهید فرمول، فایل دوم یافت شده را برمی گرداند و به همین ترتیب.
شکل یک مثال را نشان می دهد. در سلول A1 مسیر و مشخصات فایل نوشته شده و در سلول A2 فرمول زیر نوشته شده و این فرمول در سلول های پایین تر نیز کپی شده است.
=INDEX(FileList,ROW()-1) |
تابع ROW در این مثال شماره سطر را برمی گرداند و بنابراین دنباله ای از اعداد طبیعی مانند 1، 2 ، 3 و ... را تولید می کند. این اعداد به عنوان متغیر دوم تابع INDEX استفاده می شوند. دقت کنید که سلول A21 و سلول های پایین تر از آن مقدار خطا را بر می گردانند این بدین دلیل است که فولدر تنها شامل 19 فایل با مشخصات گفته شده است و چون تابع سعی می کند فایلی را نشان دهد که عملا وجود ندارد پس مقدار خطا را بر می گرداند.
اگر شما از این تکنیک استفاده می کنید باید فایل را با پسوند فایل های macro-enabled (*.XLSX یا *.XLS) ذخیره کنید.
