ایجاد 1000پوشه در اکسل فقط با یک کلیک
- آخرین بروزرسانی: 28 شهریور 1402
آموزش حرفه ای اکسل با کد نویسی vba توی این آموزش رایگان اکسل برای شما کاربران همیشگی سایت آکادمی روح الله نحوه ایجاد 1000پوشه در اکسل فقط با یک کلیک را آماده کردم یک آموزش جذاب و کاربردی است ادامه آموزش را با من همراه باشید
ایجاد پوشهها با استفاده از کد VBA در اکسل
استفاده از نرمافزار اکسل برای مدیریت و ذخیره اطلاعات از مهمترین وظایف در محیط کاری ما است. گاهی اوقات نیاز داریم تا اطلاعاتی را بر اساس مقادیر در ورکشیتهای اکسل به صورت سازمانیافته در پوشهها ذخیره کنیم. در این مقاله، به شما نشان خواهیم داد چگونه با استفاده از کد VBA (Visual Basic for Applications) در اکسل، به صورت خودکار پوشهها را بر اساس مقادیر سلولها ایجاد کنید.
مفهوم ایجاد پوشه با VBA
وقتی کار با دادههای بزرگ در اکسل دارید، گاهی اوقات نیاز دارید تا این دادهها را در پوشههای مخصوص به خود ذخیره کنید تا سازمانیافتهتر باشند. به عنوان مثال، فرض کنید دارید یک لیست از نامها در ستون A اکسل دارید و میخواهید برای هر نام یک پوشه با نام متناظر ایجاد کنید. اینجاست که کد VBA به کمک میآید.
ایجاد کد VBA
برای ایجاد پوشهها با استفاده از کد VBA در اکسل، ابتدا باید به ویرایشگر VBA دسترسی داشته باشید. این کار را با کلیک بر روی “توسعهدهنده” در منوی “ابزارها” انجام دهید. سپس یک ماژول جدید ایجاد کرده و کد زیر را در آن قرار دهید:

ایجاد ۱۰۰۰پوشه در اکسل فقط با یک کلیک
ایجاد 1000پوشه در اکسل فقط با یک کلیک
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
'------------------------------------------------------- ' نويسنده: روح الله وکيل زاده '------------------------------------------------------- ' از سايت آکادمي روح الله به آدرس '------------------------------------------------------- ' https://academyruhollah.com/ '------------------------------------------------------- ' توضيحات: (اين کد براي ايجاد پوشه ها استفاده مي شود) '------------------------------------------------------- ' براي مشاهده آموزش مربوط اين کد لينک زير را کپي کنيددر مرورگر خود '------------------------------------------------------- ' https://academyruhollah.com/?p=2321 '------------------------------------------------------- Sub academyruhollah1() Dim FolderPath As String Dim Cell As Range Dim TargetColumn As Range ' تعيين مسير پوشه مبدأ (معمولاً پوشه اکسل کنوني) FolderPath = ThisWorkbook.Path ' تعيين ستون مورد نظر که شامل نامها است (در اينجا مثالاً ستون A را در نظر ميگيريم) Set TargetColumn = ActiveSheet.Range("A1:A" & ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row) ' پيمايش تمام سلولها در ستون مورد نظر و ايجاد پوشهها For Each Cell In TargetColumn ' خواندن مقدار سلول CellValue = Cell.Value ' ايجاد پوشه با نام مقدار سلول MkDir FolderPath & "\" & CellValue Next Cell ' نمايش پيام تأييدي MsgBox "پوشهها براي تمام نامها ايجاد شدند.", vbInformation End Sub |
نحوه استفاده
- ابتدا ویرایشگر VBA را باز کنید.
- یک ماژول جدید ایجاد کنید.
- کد VBA را در ماژول قرار دهید.
- ستونی را که حاوی نامهایی است که میخواهید برای هر نام یک پوشه ایجاد شود، تعیین کنید.
- کد را اجرا کنید.
با اجرای کد، اکسل به صورت خودکار پوشهها را با نام مقادیر سلولها ایجاد خواهد کرد.
نتیجه
با استفاده از کد VBA در اکسل، شما میتوانید به سادگی پوشهها را بر اساس مقادیر شیت پوشه های خود ایجاد کنید. این عملیات به شما کمک میکند دادههای خود را سازماندهی کرده و به ترتیب اطلاعات خود را ذخیره کنید.
از این کد میتوانید برای موارد مختلفی مانند سازماندهی فایلها بر اساس مقادیر موجود در اکسل یا ایجاد پوشههای مخصوصی برای پروژهها و کارهای مختلف استفاده کنید.
امیدوارم که برای شما کاربردی باشد
- Excel VBA
- پوشهسازی خودکار
- سازماندهی داده
- کد برنامهنویسی اکسل
- ایجاد پوشهها بر اساس مقادیر سلولها
سلام برای تعداد حدودا پنج هزار نفر میخواهم در اکسل برای هر فرد یک پوشه جهت بایگانی مدارک هرشخص ایجاد کنم راهنمایی فرمایید وینوز 10و 7.
سلام ارادت خدمت شما 🌷
کار کاملاً شدنیه و با اکسل خیلی تمیز میتونی انجامش بدی، هم روی ویندوز ۷ هم ۱۰ بدون هیچ مشکلی.
ایده کلی
اسامی یا کد هر فرد داخل اکسل باشد
با یک دکمه یا اجرای ماکرو، برای هر نفر یک پوشه جداگانه ساخته شود
پوشهها میتوانند با نام، کد ملی، شماره پرونده یا ترکیبی ساخته شوند
روش استاندارد و مطمئن (پیشنهادی)
1️⃣ آمادهسازی اکسل
مثلاً در ستون A لیست افراد را بنویس:
A2 : 1001 - علی رضایی
A3 : 1002 - مریم احمدی
A4 : 1003 - حسین محمدی
بهتر است نام پوشهها کاراکتر غیرمجاز نداشته باشند ( / \ : * ? " < > | )
2️⃣ مسیر ذخیره پوشهها
مثلاً:
D:\Archive\Persons
(اول این پوشه اصلی را دستی بساز)
3️⃣ کد VBA برای ساخت ۵۰۰۰ پوشه
در اکسل:
Alt + F11
Insert → Module
کد زیر را کپی کن 👇
Sub CreateFolders()
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
Dim basePath As String
Dim folderName As String
Set ws = ThisWorkbook.Sheets("Sheet1") 'نام شیت را در صورت نیاز تغییر بده
basePath = "D:\Archive\Persons\" 'مسیر پوشه اصلی
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
For i = 2 To lastRow
folderName = ws.Cells(i, "A").Value
If folderName <> "" Then
If Dir(basePath & folderName, vbDirectory) = "" Then
MkDir basePath & folderName
End If
End If
Next i
MsgBox "پوشهها با موفقیت ساخته شدند ✅", vbInformation
End Sub
4️⃣ اجرا
برگرد به اکسل
Alt + F8
اجرای CreateFolders
⏱️ برای ۵۰۰۰ نفر معمولاً کمتر از چند ثانیه زمان میبرد.
نکات حرفهای 🌟
✔️ روی ویندوز ۷ و ۱۰ کاملاً سازگار
✔️ بدون نیاز به اینترنت
✔️ اگر پوشهای وجود داشته باشد، دوباره ساخته نمیشود
✔️ میتوانی بعداً:
داخل هر پوشه زیرپوشههایی مثل (مدارک هویتی، قرارداد، تصاویر) هم بسازی
با کلیک از اکسل مستقیماً پوشه هر شخص را باز کنی
سلام وقت بخیر و خسته نباشید و با تشکر از آموزشهای بسیار کارآمد جنابعلی ، در خصوص کدهای فوق مربوط به ساخت پوشه روی این خط خطا میده لطفا راهنمایی کنید ممنون میشم ‘ ايجاد پوشه با نام مقدار سلول
MkDir FolderPath & “\” & CellValue
سلام
ممنون از لطف و توضیح کاملتون. خطایی که میگیرید کاملاً قابل توضیح است و خوشبختانه ربطی به ویندوز یا آفیس ندارد، مشکل از خود کد است. بگذارید دقیق و تمیز جمعش کنیم.
🔴 علت خطا
خطا روی این خط میافتد:
MkDir FolderPath & “\” & CellValue
چند ایراد مهم در کد وجود دارد:
1️⃣ متغیر CellValue اصلاً تعریف نشده
در VBA باید همه متغیرها تعریف شوند، وگرنه خطای Compile یا Runtime میخورید.
2️⃣ احتمال خالی بودن سلول
اگر حتی یک سلول خالی باشد، MkDir خطا میدهد.
3️⃣ احتمال وجود کاراکتر غیرمجاز در نام پوشه
کاراکترهایی مثل:
\ / : * ? ” < > |
در نام پوشه مجاز نیستند و باعث خطا میشوند.
4️⃣ اگر پوشه قبلاً ساخته شده باشد
MkDir اگر پوشه از قبل وجود داشته باشد، خطا میدهد.
✅ نسخه اصلاحشده و استاندارد کد (پیشنهادی)
این نسخه بدون خطا، ایمن و حرفهای است:
Sub academyruhollah1()
Dim FolderPath As String
Dim Cell As Range
Dim TargetColumn As Range
Dim CellValue As String
Dim FullPath As String
' مسیر پوشه اصلی (مسیر فایل اکسل)
FolderPath = ThisWorkbook.Path
' ستون شامل نام پوشهها (ستون A)
Set TargetColumn = ActiveSheet.Range("A1:A" & ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row)
' پیمایش سلولها
For Each Cell In TargetColumn
CellValue = Trim(Cell.Value)
' اگر سلول خالی بود، رد شود
If CellValue <> "" Then
FullPath = FolderPath & "\" & CellValue
' اگر پوشه وجود نداشت، ایجاد شود
If Dir(FullPath, vbDirectory) = "" Then
MkDir FullPath
End If
End If
Next Cell
MsgBox "پوشهها با موفقیت ایجاد شدند.", vbInformation
End Sub
🔧 اگر باز هم خطا دیدید (نکته مهم)
بررسی کنید:
نامها فاصله اول یا آخر نداشته باشند
کاراکتر غیرمجاز داخل نامها نباشد
فایل اکسل Save شده باشد (MkDir روی فایل Save نشده خطا میدهد)
🔹 جمعبندی
✔ خطا بهدلیل تعریف نشدن متغیر و کنترل نشدن شرایط است
✔ کد بالا ایمن، حرفهای و قابل استفاده عمومی است
✔ مناسب آموزش، پروژه واقعی و انتشار در سایت
موفق پیروز باشید