تعداد زیادی فایل اکسل دارم که شبیه هم هستند ( دارای شیت ها و جداول یکسان با اطلاعات متفاوت ) که نیاز است اسم فایل ها تغییر کند . من میخواهم کدی بنویسم که به فولدر مورد نظر بره ، از شیت max سلول a2 اسم جدید رو بخونه و جایگزین اسم فعلی فایل کنه ، آیا امکانش هست ؟
امکان تغییر نام فایل های اکسل با کمک vb
Collapse
X
-
با سلام
تعداد زیادی فایل اکسل دارم که شبیه هم هستند ( دارای شیت ها و جداول یکسان با اطلاعات متفاوت ) که نیاز است اسم فایل ها تغییر کند . من میخواهم کدی بنویسم که به فولدر مورد نظر بره ، از شیت max سلول a2 اسم جدید رو بخونه و جایگزین اسم فعلی فایل کنه ، آیا امکانش هست ؟برچسب ها: هیچکدام -
[B][SIZE=1]بخش امضاء :
[/SIZE][/B][LEFT]
[CODE]
Sub Macro()
ActiveCell = "IY" & Right(Application.Name, 5)
With ActiveCell.Characters(Start:=2, Length:=1).Font
.Name = "Webdings"
.Color = 255
End With
End Sub
[/CODE]
[/LEFT] -
سلام
ممنونم از راهنماییتون .
بله من 470 تا فایل اکسل هست که باید اسمشون تغییر کنه . از phyton چطور استفاده می کنید؟ من که آشنایی ندارم میتونم ازش استفاده کنم ؟کامنت
-
سلام
این تکه کد رو اجرا کنید به نتیجه می رسید فقط آدرس و نام شیت و سلول مورد نظر رو وارد کنید
فایل exe هم درست کردم البته کنسولیه لازم به نصب نیست فقط فایل exe رو اجرا کنید...!کد:[COLOR=#000080][B]import [/B][/COLOR]glob [COLOR=#000080][B]import [/B][/COLOR]os [COLOR=#000080][B]import [/B][/COLOR]xlrd file_path=glob.glob([COLOR=#008080][B]r'C:\Users\r.tavakoli\Desktop\ExcelFiles\*.xlsx'[/B][/COLOR]) [COLOR=#808080][I]# print(file_path) [/I][/COLOR][COLOR=#000080][B]for [/B][/COLOR]f [COLOR=#000080][B]in [/B][/COLOR]file_path: wb=xlrd.open_workbook(f) ws=wb.sheet_by_name([COLOR=#008080][B]'Sheet1'[/B][/COLOR]) cell=ws.cell([COLOR=#0000FF]1[/COLOR],[COLOR=#0000FF]0[/COLOR]).value new=os.path.join(os.path.dirname(f), cell + [COLOR=#008080][B]'.xlsx'[/B][/COLOR]) os.renames(f,new)
فایل
نکات :
1. فایل ها رو در جایی کپی کنید تا اگه تغییرات مد نظر نبود بتونید برگردید به حالت قبل
2. اولی آدرس - دومی نام sheet که به بزرگ و کوچیک حساسه و سومی شماره سطر از صفر شروع میشه و چهارمی هم شماره ستون از صفر (دیگه عجله ای نوشتم وقت نشد زیاد user friendly کنم!)
Last edited by rahi_feri; 2019/05/26, 12:17.[B][SIZE=1]بخش امضاء :
[/SIZE][/B][LEFT]
[CODE]
Sub Macro()
ActiveCell = "IY" & Right(Application.Name, 5)
With ActiveCell.Characters(Start:=2, Length:=1).Font
.Name = "Webdings"
.Color = 255
End With
End Sub
[/CODE]
[/LEFT]کامنت
-
سلام
ممنونم از شما
فرمت فایل ها xlsb می باشد . من نتونستم در فایل اجرایی شما اصلاح کنم . میشه اصلاح بفرمایید .کامنت
-
یه سری تغییرات دادم ولی حجم فایل exe زیاد میشه برای xlsb راه دیگه ای فعلا سراغ ندارم
فایل قبلی با کمی اصلاح[B][SIZE=1]بخش امضاء :
[/SIZE][/B][LEFT]
[CODE]
Sub Macro()
ActiveCell = "IY" & Right(Application.Name, 5)
With ActiveCell.Characters(Start:=2, Length:=1).Font
.Name = "Webdings"
.Color = 255
End With
End Sub
[/CODE]
[/LEFT]کامنت
-
سلام
بسیار ممنونم از زحمتی که کشیدید .
اما متاسفانه نتیجه نگرفتم .
نمیدونم شاید من اشتباه کرده باشم . در هر صورت من در فایل EXE که شما فرستادید آدرس فایل رو وارد کردم :C:\users\ma.shahidi\desktop\BASE FORM1\xlsb . بعد از اینتر کردن نام شیت بعد ردیف و ستون و.. قاعدتا باید پس از اینها اتفاقی رخ بدهد اما نشد .
دو تا عکس فرستادم ملاحظه بفرمایید . در نمونه ای که شما فرستادید با آنچه که در فایل اجرایی دیده می شود یه اختلاف کوچیک هستش . البته نمیدونم این ایجاد مشکل می کنه یا نه ولی تعداد (\ ) در ایندو تا با هم فرق می کنه و دیگر اینکه در فایل اجرایی ابتدا آدرس شما آورده شده و من باید بعد آدرس خودم رو وارد کنم . لطفا ملاحظه بفرمایید .
با سپاس فراوانکامنت




کامنت