انجام عملیات های copy,paste و Delete با استفاده از کدهای VBA

امروز می خواهیم با همدیگر مطلبی در زمینه کار با عملیات های copy و paste و Delete  در اکسل با هم صحبت کنیم. 

مطمئنا با این عملیاتها به خوبی آشنایی دارید و نیازی نیست که بگوییم هر کدام از آنها چه کاری را می توانند برای ما انجام دهند .

تقریبا می توان گفت کمتر کاربری است که در محیط اکسل و یا دیگر نرم افزار های آفیس کار بکند و  با این سه عملیات سر و کار نداشته باشد .

دو عملیات کپی و paste  در کنار  عملیات cut  کردن اطلاعات جزو ملزومات کار با هم هستند .

شما داده ای را کپی  و یا Cut نمی کنید مگر اینکه بخواهید آن را در مقصد مورد نظر خود Paste  کنید .

 کار با این عملیات ها بسیار ساده است .

هم گزینه های متعددی برای استفاده از آنها در دل نرم افزار ها وجود دارد و هم اینکه میانبرها و شورتکاتهایی برای این کار فراهم شده است .

در هر صورت نتیجه و خروجی کار یکی خواهد بود . 

اما امروز می خواهیم در خصوص استفاده از این امکانات و نحوه کار با آنها در محیط برنامه نویسی VBA صحبت کنیم .

اینکه به چه نحو می توانیم با استفاده از کد نویسی همه این کارها را انجام دهیم و دیگر نیازی به دخالت فرد برای انجام این کارها نباشد .

پس تا انتهای این آموزش هم همراه ما باشید .

کار با عملیات های copy و paste و Delete

چگونگی کار با عملیات های copy و paste و Delete

اول به سراغ عملیات کپی کردن در اکسل می رویم .

می خواهیم کار را با کپی کردن یک سلول شروع کنیم .

در قدم اول باید آدرس سلول مورد نظر خود را درج کنیم

برای این کار یک روال یا پروسیجر  ایجاد می کنیم .

در داخل این روال شروع به کد نویسی می کنیم .

فرض کنید که می خواهیم اطلاعات موجود در سلول A1  را کپی کرده و آنها را در سلول F1  قرار دهیم .

برای این کار چند مرحله ساده را پی می گیریم .

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

اول سلول مبدا را مشخص می کنیم .

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

حالا با این سلول می خواهیم چکار کنیم .

می خواهیم یک کپی از آن تهیه کنیم .

بسیار خوب پس کد خود را تکمیل می کنیم .

 در ادامه ما یک نقطه گذاشته و اکسل بلافاصله یک لیست بلند بالا را برای ما نمایش می گذارد .

کار با عملیات های copy و paste و Delete

 

از این لیست ما گزینه Copy  را انتخاب می کنیم .

 به همین راحتی ما توانستیم محتویات سلول مورد نظر خود را که در اینجا A1  است را کپی کردیم .

خوب حالا محتویات این سلول را کپی کردیم . حالا می خواهیم چکار کنیم ؟

می خواهیم این اطلاعات را در یک سلول دیگر Paste  کنیم .

برای این کار باید چکار کنیم ؟

کافی است در ادامه کد خود یک فاصله ایجاد کنیم .

بعد از این کار اکسل یک کادر پیغام کوچک را برای شما نمایش می دهد .

کار با عملیات های copy و paste و Delete

ابن کادر به زبان بی زبانی به ما می گوید سلول هدف را برایش مشخص کنیم .

پس این کار را انجام می دهیم .

سلول f1  همان سلول هدفی است که ما می خواهیم اطلاعاتی را که کپی کردیم را در آن قرار دهیم .

می بینید به راحتی و تنها با استفاده از یک نیم خط می توانیم اطلاعات یک سلول را کپی و در جای دیگری آن را Paste  کنیم .

حالا در این بین شکل و روش انجام این  کار و نحوه کدنویسی  ممکن است تفاوت هایی داشته باشد .

مثلا به کدهای زیر نگاه کنید .

 و یا اینکه به کدهای زیر را نگاه کنید .

 در همه این کدها صورت کار و نحوه نگارش کدها تفاوت می کند اما نتیجه و خروجی همه این کدها یک چیز است .

این کاملا بستگی به سلیقه شما بعنوان یک برنامه نویس دارد که از کدام روش استفاده کنید .

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

یعنی در خط اول ما اطلاعات سلول مبدا را کپی می کنیم .

در خط دوم سلول مقصد را تعیین می کنیم .

در خط سوم هم با استفاده از متد Paste  اطلاعات خود را در سلول مقصد جایگذاری می کنیم .

تا به اینجا ما در خصوص کپی کردن اطلاعات از یک سلول به سلول دیگر صحبت کردیم .

در اینجا هم سلول مبدا و هم سلول مقصد ما در یک شیت کاری وجود دارند .

اما در نظر بگیرید که می خواهیم اطلاعات موجود در یک سلول را از یک شیت کاری به سلول دیگری که در شیت کاری دیگر وجود دارد منتقل کنیم . 

در این صورت چه باید بکنیم ؟

کار با عملیات های copy و paste و Delete

کپی کردن اطلاعات بین شیت ها توسط کدهای وی بی ای 

برای شروع کار فرض کنید می خواهیم اطلاعات موجود در شیت ۱ را به سلول F3  موجود در شیت ۳ منتقل کنیم .

برای این کار از کدهای زیر استفاده می کنیم .

در اینجا ما اطلاعات خود را در سلول A1  کپی کردیم .

این کدها تقریبا شبیه کدهای حالتی است که سلول های مبدا و مقصد در یک شیت هستند .

تنها تفاوت در اینجا مربوط به آدرس شیت کاری است که در ابتدای این کدها قرار داده ایم .

در واقع در اینجا به برنامه گفته ایم که سلول A1  مورد نظر ما از بین شیت های کاری در شیتی تحت عنوان “sheet 1 ”  قرار دارد . 

حالا باید به سراغ سلول هدف خود رفته و ان را به برنامه معرفی کنیم .

مشابه معرفی سلول های مبدا سلول مقصد را نیز معرفی می کنیم . 

اکنون باید این دو خط کد را با هم ترکیب کنیم .

 پس در اینجا هم توانستیم اطلاعات خود را از یک سلول در شیت کاری به سلول دیگری در شیت کاری دیگر کپی کنیم .

درست است که سلول های مبدا و مقصد ما در دو شیت مختلف هستند اما در عین حال این دو شیت هر دو در یک ورک بوک قرار دارند .

اما اگر بخواهیم اطلاعات را بین شیت هایی رد و بدل کنیم که شیتها در دو فایل اکسل مجزا یا در اصطلاح دو Workbook  دیگر قرار داشته باشند چه باید کرد .

همین قضیه در خصوص ورک بوک های متفاوت نیز صدق می کند .

یعنی مراحل کد نویسی مشابه حالتی است که بین دو شیت می خواهیم کار کنیم .

به عنوان مثال به کدهای زیر نگاه کنید .

در این کدها ما اول نام فایل مورد نظر خود را از بین فایلهای موجود خود را به همراه فرمت آن  به برنامه معرفی می کنیم .

در ادامه هم سلول مورد نظر خود را در بین شیتهای موجود به برنامه معرفی کرده ایم .

حالا باید به سراغ معرفی سلول هدف خود برویم .

ما در اینجا با استفاده از متد Activate  فایل اکسل مورد نظر خود را فعال می کنیم .

در قدم بعد سلول مورد نظر را خود را به برنامه معرفی می کنیم . 

در این کدها به برنامه می گوییم از فایل اکسلی که در حال حاضر فعال شده است به سراغ شیتی تحت عنوان sheet2  رفته و آن را انتخاب کند .

در قدم آخر هم می رویم به سراغ کار اصلی خود که همان کپی کردن اطلاعات است .

در اینجا مجموعه کدهای خود را در کنار هم قرار می دهیم تا تشکیل یک روال را بدهد .

 تا به اینجا ما هر چه صحبت کردیم در خصوص کپی کردن یک سلول و انتقال آن به سلول دیگر می باشد .

حالا خواه این سلول ها در یک شیت کاری باشند یا در دو شیت مجزا و یا اینکه بطور کل در دو فایل جدا از هم باشند .

اما اگر بخواهیم یک محدوده از اطلاعات را از یک منبع کپی کرده و آن را در مقصد کپی کنیم چه باید کرد ؟

برای این منظور از کدهایی شبیه زیر استفاده می کنیم .

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

تنها تفاوت در نحوه آدرس دهی می باشد که در اینجا به جای آدرس یک سلول آدرس محدوده ای از سلول ها را به برنامه معرفی کرده ایم . 

بررسی چند روش جدید در کپی کردن داده ها

اصول  کار با عملیات های copy و paste و Delete با استفاده از کدهای وی بی ای همان چیز چیزی است که تا به اینجا به هم مرور کردیم.

در ادامه می خواهیم چند کد دیگر را نیز با هم بررسی کنیم  .

بعنوان مثال به کدهای زیر نگاه کنید .

این کدها از برنامه می خواهد هر محدوده ای را که ما انتخاب می کنیم را کپی کرده و آنها را در مقصدی که برایش تعریف کرده ایم جایگذاری کند .

یا در حالتی دیگر کدهای زیر را در نظر بگیرید .

این کدها به برنامه می گوید که هر سلولی را که در حال حاضر بصورت فعال است را کپی کند .

و یا اگر بخواهیم کل محدوده ای که حاوی اطلاعات است را کپی کنیم می توانیم از کدهای زیر استفاده کنیم .

 

در این مطلب ما در خصوص نحوه کار با عملیات های copy و paste و Delete در محیط برنامه نویسی VBA بطور مفصل صحبت کرده و روش های متعددی را برای این کار مورد بررسی قرار دادیم .

امیدوارم این آموزش نیز برای شما مفید و کاربردی بوده باشد .

خوشحال می شویم نظرات خود را در خصوص این آموزش برای ما قسمت دیدگاهها ثبت کنید .

برای مشاهده کلیپ های تصویری در زمینه کار با نرم افزار های آفیس می توانید به پیج اینستاگرام ما مراجعه کنید .

کار با عملیات های copy و paste و Delete

 

آموزش های Excel بازدید : 1,146 views 21 جولای, 2020 ۰