کپی کردن صفحه/کاربرگ (sheet)

در آموزش قبل با مجموعه Worksheets در VBA آشنا شدیم و یاد گرفتیم که چطور با استفاده از آن می توانیم یک ماکرو برای افزودن یک صفحه جدید (sheet) به اکسل با استفاده از VBA بنویسیم. در این آموزش می خواهیم نحوه کپی کردن صفحه/کاربرگ (sheet) با استفاده از این مجموعه را یاد بگیریم.

Novin.com

مدت زمان تخمینی مطالعه: 5 دقیقه

متد Copy مجموعه Worksheets

در آموزش های قبل گفتیم که مجموعه Worksheets در VBA همانطور که از نام آن نیز پیدا می باشد، تمامی صفحات موجود در یک workbook را نگهداری می نماید. متد Copy یکی از متدهای پرکاربرد این مجموعه می باشد. با استفاده از این متد می توانید یک صفحه/کاربرگ را بطور کامل کپی و در کتاب کار جاری اکسل یا یک کتاب کار دیگر بچسبانید (paste کنید).

مستندات متد Copy مجموعه Worksheets

دستور متد Copy

expression در کد بالا بایستی یک شیء باشد که به مجموعه Worksheets اشاره داشته باشد.

عنواناجباری/اختیارینوع دادهتوضیحات
BeforeاختیاریVariantیک شیء صفحه (worksheet) است که صفحه ای را که بایستی صفحه جدید قبل از آن اضافه شود را مشخص می نماید. در صورتی که After مشخص شده باشد نمی توان این پارامتر را تعیین نمود.
AfterاختیاریVariantیک شیء صفحه (worksheet) است که صفحه ای را که بایستی صفحه جدید بعد از آن اضافه شود را مشخص می نماید. در صورتی که Before مشخص شده باشد نمی توان این پارامتر را تعیین نمود.

نوشتن ماکروی کپی کردن صفحه/کاربرگ (sheet) در اکسل

1. کپی کردن صفحه/کاربرگ (sheet) در کارصفحه فعلی (workbook) اکسل

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

تعیین متغیر workbook

در این بخش متغیری که مشخص کننده workbook باشد را تعیین می نماییم. برای این کار کد زیر را به ماکروی خود اضافه نمایید.

در خط اول متغیر موردنیاز را اعلان کردیم و در خط دوم مرجع متغیر را با استفاده از دستور Set روی ThisWorkbook (که نماینده فایل اکسل ماکرو می باشد) تنظیم کرده ایم. دقت داشته باشید که هر جا که نوع متغیر یک نوع شیء باشد نمی توانیم متغیر را با استفاده از عملگر = مقدار دهی یا assign نماییم. در این موارد حتما بایستی از دستور Set استفاده نماییم.

کپی صفحه

حالا با استفاده از خاصیت Worksheets شیء ThisWorkbook که توسط متغیر wb به ارث برده شده است می توانیم کاربرگی را که می خواهیم کپی نماییم. مجموعه Worksheets علاوه براینکه یک شیء می باشد، مشابه یک آرایه نیز عمل می نماید. به این صورت که با انتخاب نام یا Index هر کاربرگ در می توانیم مشخص کنیم که کدامیک از اعضای مجموعه Worksheets را نیاز داریم.

به مثال زیر توجه نمایید:

در خط 1 کد بالا یک متغیر کاربرگ (sh) معرفی نموده ایم.

در خط 2 با استفاده از مجموعه Worksheets کاربرگی که در این مجموعه با Index شماره 1 ذخیره شده است به عنوان مرجع متغیر sh تعیین کرده ایم.

در خط 3 و 4 با استفاده از نام صفحه/کاربرگ مرجع متغیر sh را تعیین کرده ایم.

با توجه به مثال بالا متوجه می شویم که مجموعه Worksheets، مجموعه ای از اشیاء‌ صفحه/کاربرگ موجود در کارصفحه/workbook می باشد. این مجموعه در VBA بطور خودکار شیء مربوط به تمامی کاربرگ ها را به ترتیب Index هر یک در خود قرار می دهد.

حال برای کپی صفحه ای به نام iranvba می توانیم از دستور زیر استفاده نماییم.

کد بالا صفحه iranvba را بعد از صفحه ای به نام vba is fun کپی می نماید. در این کد مجموعه Worksheets بدون تعیین workbook آن بکار رفته است و در واقع Worksheets در این کد به معنای ThisWorkbook.Worksheets می باشد. کامل شده این کد، کد زیر است.

2. کپی کردن صفحه/کاربرگ (sheet) در کارصفحه (workbook) دیگر اکسل

برای کپی کردن صفحه اکسل در اکسل دیگر کافیست یکی از آرگومان های Before یا After را با استفاده از مجموعه Worksheets کارصفحه جدید تکمیل نماییم. ماکروی زیر صفحه iranvba را از کارصفحه فعلی اکسل بعد از اولین صفحه کارصفحه ای بنام test-2.xlsx کپی می نماید.

دانلود فایل اکسل آموزش

بیشتر بخوانید…

دیدگاهتان را بنویسید