PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : replace سلول در محدوده ي مورد نظر كاربر



maryam62
2012/05/20, 00:46
فرض كنيد كاربر محدوده اي از سلول ها را در شيت2 انتخاب و ماكرو را اجرا ميكند. مثلا طبق تصوير زير محدوده اي كه در شيت2 مشخص شده انتخاب شده است. حال ماكرو بايد در سلول هاي اين محدوده بگردد و اگر سلولي محتويات آن دقيقا برابر هر يك از سلولهاي ستون اول شيت1 بود مقدار معادل آن را از ستون دوم شيت1 جايگزين كند .برنامه ي زير اين كار را انجام ميدهد فقط چون به ترتيب داده ها را از شيت 1 جايگزين ميكند مثلا مقدار ddd كه بايد 4 باشد را به صورت 3d جايگزين ميكند و اين اشتباه است.راه حلي مي خواهم كه مقايسه سلول ها روي تمام محتواي سلول انجام شود و اگر مثلا mmmm در سلول بود آن را با 5 جايگزين كند نه 2m.
نكته: result نتيجه ي جايگزيني را نشان ميدهد.
با تشكر
http://s3.picofile.com/file/7386127418/replace_cell.jpg

ReplaceCells (http://s3.picofile.com/file/7387147311/ReplaceCells.xlsm.html)

~M*E*H*D*I~
2012/05/21, 11:25
سلام
توضیحات شما خیلی مختصره الان قصد شما چیه دقیقا اگه فایل اصلیو بذارید خیلی بهتره و هدف اصلی از این کار رو توضیح بدید ، اطلاعات شیت 1 رو به شیت 2 منتقل میکنیئ بعد اون ستون سوم که نتیجه هست چیو قراره نشون بده

maryam62
2012/05/21, 12:42
سلام
توضیحات شما خیلی مختصره الان قصد شما چیه دقیقا اگه فایل اصلیو بذارید خیلی بهتره و هدف اصلی از این کار رو توضیح بدید ، اطلاعات شیت 1 رو به شیت 2 منتقل میکنیئ بعد اون ستون سوم که نتیجه هست چیو قراره نشون بده


سوال به روز رساني شد.

~M*E*H*D*I~
2012/05/21, 13:28
سلام
این کاری که مد نظر شماست با توابع اکسل امکان پذیره چرا از توابع استفاده نمیکنید

komeilex
2012/05/21, 18:36
سلام. با تشکر از وطن پرست عزیز.
همون طور که ایشون گفتن شما این کارو خیلی راحت می تونین با تابع vlookup انجام بدین. برای این که این کار براتون به صورت اتوماتیک انجام بشه می تونین محدودتون رو طوری تعریف کنین که خونه هایی که الان خالی هستن رو هم شامل بشن تا با اضافه کردن مورد جدید، به صورت اتوماتیک در نظر گرفته بشن.

khakzad
2012/05/22, 00:24
سلام.با تشکر از دوستان
اگر هم اصرار به وی بی هست. همین فرمول رو از طریق این کد، در محیط وی بی بیارید:
worksheetfunction.vlookup بقیش دیگه مثل فرمول عمل می کنه.4 ارگومان می گیره

~M*E*H*D*I~
2012/05/22, 08:29
سلام
من هم راهی که خانم خاکزاد مطرح کردن پیشنهاد میکنم خودمم تو کدتون همین کارو کردم

Javid Mokhtari
2012/05/22, 13:08
با سلام.
اگه روش زیر مورد پسند نبود ، راههای دیگری هم می شود ارائه داد:
http://persiandrive.com/584893

maryam62
2012/05/23, 19:20
ممنون از روشهاتون. يه مشكلي كه هست اينه كه اگر در شيت1 مثلا داشته باشيم

http://s3.picofile.com/file/7389239672/1.jpg
تمام www برابر 1 ميشود و در آخر تمام يك ها هم "Ali" ميشود و اين اشتباه است. آيا روشي نيست كه گزينه هايي كه جايگزين ميشوند از محدوده خارج شوند تا در انتخاب هاي بعدي تغيير نكنند؟

Javid Mokhtari
2012/05/26, 14:48
ممنون از روشهاتون. يه مشكلي كه هست اينه كه اگر در شيت1 مثلا داشته باشيم
تمام www برابر 1 ميشود و در آ--- تمام يك ها هم "Ali" ميشود و اين اشتباه است. آيا روشي نيست كه گزينه هايي كه جايگزين ميشوند از محدوده خارج شوند تا در انتخاب هاي بعدي تغيير نكنند؟


با سلام.
اما این مشکلتون با مشکل قبلیتون فرق میکنه و به این مورد اشاره نکرده بودین.
...........لطفاً بیشتر توضیح بدین..........
با تشکر.................

maryam62
2012/05/26, 15:49
با سلام
بله من وقتي برنامه ي شما رو روي داده هاي خودم اجرا كردم متوجه اين مشكل شدم.
فرض كنيد طبق اطلاعات شيت1 قرار است تمام wwwها با 1 جايگزين شود . سطر ديگري هم داريم كه ميگويد تمام 1 ها به m تبديل شود. بعد از اجراي برنامه اول تمام www ها به 1 تبديل ميشود اما مشكل اينجاست كه بعد از اجراي سطري كه ميگويد 1 به m تبديل شود، 1 هايي كه در مرحله ي قبل هم ايجاد شده بود به m تبديل مي شود. آيا در اكسل راهي وجود دارد كه سلول هايي كه قبلا replace شده اند از محدوده خارج شوند و عمليات جايگزيني روي بقيه ي سلول هاي محدوده انجام گيرد؟
اميدوارم خوب توضيح داده باشم.مرسي