تبلیغات
EXCEL - جلوگیری از «تغییر عدد رندوم با هر بار رفرش»
EXCEL
آشنایی با نرم افزار گمنام ولی جادویی اکسل
16 آبان 92

جلوگیری از «تغییر عدد رندوم با هر بار رفرش»

16 آبان 92

بسم الله الرحمن الرحیم

السلام علیک یا اباعبد الله الحسین

سلام علیکم 

در پیام ها سؤالی مطرح شد که به نظرم آمد چون ممکن است سؤال خیلی از عزیزان باشد آن را در یک پست جواب دهم:

سؤال:
 با سلام و احترام،
در ابتدا تشكر میكنم از سایت عالی كه طراحی كردین، عذر میخوام من فرمول رندوم را استفاده كردم اما میخوام 
از هرسری كه عمل رندوم صورت میگیرد از داده های تصادفی ام یك پرینت بگیرم اما چون متاسفانه با هر رفرشی
 اعداد تصادفی من تغییر می یابد، قادر به پرینت اعداد تصادفی ان لحظه نمی باشم.
با سپاس فراوان

                                  پاسخ در ادامه مطلب


پاسخ:
برای این کار 2روش وجود دارد:
1- از تب formulas در قسمت calculation بر روی calculation options کلیک نمایید و حالت manual  را انتخاب نمایید. با این کار دیگر با هر بار رفرش صفحه عدد رندم عوض نمی شود و برای اینکه عدد رندوم جدیدی بدست آورید از تب formulas در قسمت calculation بر روی calculate now کلیک نمایید.
2- در این روش لازم است از VBA استفاده نمایید یعنی تحت زبان برنامه نویسی ویژوال بیسیک از هر سری عدد تصادفی که می خواهید 
کپی کنید و در سلول های دیگر آن را ثابت نگه دارید.  برای اینکار در قسمت VIEW بر قسمت Macros کلیک نمایید
(یا روی فلش زیر آن کلیک نمایید و بر روی View macros کلیک نمایید)
 در textbox موجود در پنجره ای که باز شد یک نام برای ماکرو ای که می خواهید بنویسید انتخاب نمایید " مثلاً: M1b "

سپس بر روی create کلیک نمایید ( به صفحه ی vba منتقل می شوید)

در این صفحه باید فرمولی بنویسید که مقادیر اعداد رندومی که از طریق فرمول randbetween (مثلاًA1:A10) 
بدست آوردید را در خانه های دیگری کپی کند.
برای این منطور لازم است با نکته ی زیر آشنا باشیم:

** برای انتخاب خانه در vba  باید از فرمول worksheets("sheet name").range("cells").value  استفاده کرد. 
( به جای sheet name نام شیت مورد نظر و به جای cells محدوده حانه های مورد نظر را بنویسید. 
فراموش نکنید که نام شیت و محدوده را داخل " " بنویسید.

حال فرمول مورد نیاز ما این طور می شود:
Worksheets("sheet2").Range("b1:b10").Value = Worksheets("sheet1").Range("a1:a10").Value  تصویر کامل
تصویر
این فرمول مقادیر خانه های a1 تا a10  از شیت 1 (اعداد رندوم) را در خانه های b1 تا b10 از شیت 2 کپی می کند.

برای اجرای این ماکرو می توانید کلید میانبر یا دکمه بسازید. 

برای ساخت دکمه یک shape بکشید و روی آن کلیک راست نمایید:
روی assign macro کلیک نمایید و ماکرویی که خودتان نوشته اید را انتخاب کنید و سپس بر روی OK  کلیک نمایید.

برای ساخت کلید میانبر از قسمت view بر روی macros کلیک نمایید و ماکرویی که نوشته اید را انتخاب نمایید
و بر روی options... کلیک نمایید و در آن جا کلید میانبر مورد نظرتان را انتخاب نمایید.


یک نکته مهم:

برای اینکه ماکرو شما همراه با فایل اکسل ذخیره شود ، فایل را با پسوند xlsm ذخیره نمایید

التماس دعا