ایجاد سوال
dark_mode
0 دوستدار 0 امتیاز منفی
42 visibility
موضوع: آفیس توسط:

هنگام سازماندهی داده ها در کتاب های کاری، کپی کردن کاربرگ ها از یک کتاب کار به کتاب دیگر غیر معمول نیست. در واقع، دستور Move یا Copy Sheet (وقتی روی برگه کاربرگ راست کلیک می‌کنید قابل مشاهده است) یکی از مواردی است که من اغلب از آن استفاده می‌کنم، و حاضرم شرط ببندم که دیگران به همان اندازه از آن استفاده کنند.

پس چگونه می توان کاربرگ ها را در یک ماکرو کپی کرد؟ پاسخ این است که از روش کپی با یک کاربرگ جداگانه یا گروهی از کاربرگ استفاده کنید. به عنوان مثال، کد ماکرو زیر کاربرگ انتخاب شده فعلی را در یک کتاب کار جدید کپی می کند:

ActiveSheet.Copy

خودشه؛ یک خط تنها چیزی است که برای کپی کردن کاربرگ در یک کتاب کار جدید و بدون نام لازم است. پس از اجرای خط، Workbook جدید انتخاب می شود و می توانید با استفاده از کدی مشابه زیر آن را ذخیره کنید. خط اول کد کتاب کار را ذخیره می کند و خط دوم آن را می بندد.

ActiveWorkbook.SaveAs Filename:="MyNewFile.xlsm", _
  FileFormat:=xlOpenXMLWorkbookMacroEnabled
ActiveWindow.Close

اگر می‌خواهید یک برگه خاص را در کتاب کار دیگری کپی کنید، به جای استفاده از شی ActiveSheet، این کار را با تعیین نام برگه‌ای که می‌خواهید کپی کنید، انجام دهید:

Sheets("Sheet1").Copy

این مثال کاربرگ به نام Sheet1 را از مجموعه Sheets در یک کتاب کار جدید کپی می کند. سپس می توانید کتاب کار جدید را همانطور که قبلاً بحث شد ذخیره کنید.

روش کپی، زمانی که با کاربرگ ها استفاده می شود، محدود به کپی کردن یک برگه در یک زمان نیست. اگر گروهی از برگه‌ها را انتخاب کرده‌اید، همچنان می‌توانید از یک خط فرمان برای کپی کردن همه آنها در یک کتاب کار جدید استفاده کنید. این همان کاری است که در این ماکرو انجام می شود:

Sub CopyWorkbook()
    Dim sCopyName As String

    sCopyName = "My New Workbook.xlsm"

    SelectedSheets.Copy
    ActiveWorkbook.SaveAs Filename:=sCopyName, _
      FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub

به استفاده از دستور Copy توجه کنید. ماکرو چه یک کاربرگ انتخاب کرده باشید چه پنجاه برگه کار خواهد کرد. مهم نیست اگر می‌خواهید همه کاربرگ‌ها را از یک کتاب کار به کتاب دیگر کپی کنید، تنها کاری که باید انجام دهید این است که یک تغییر واحد در ماکرو، در خطی که متد Copy فراخوانی می‌شود، انجام دهید:

    Sheets.Copy

این کل مجموعه Sheets را کپی می کند، که شامل تمام کاربرگ های کتاب کار است.

لازم به ذکر است که روش Copy فقط برای کپی کردن کاربرگ ها در یک کتاب کار جدید نیست. همچنین می توان از آن برای کپی صفحات کاری در همان کتاب کار استفاده کرد. تنها کاری که باید انجام دهید این است که مشخص کنید کجا در کتاب کار فعلی می‌خواهید کپی کنید:

ActiveSheet.Copy After:=Sheets("Sheet7")

این خط کد کاربرگ فعال را در همان کتاب کار کپی می کند تا بعد از کاربرگ به نام Sheet7 ظاهر شود. اگر برای نیازهای شما مناسب‌تر است، می‌توانید برگه‌ای را که نسخه قبل از آن قرار می‌گیرد را مشخص کنید:

ActiveSheet.Copy Before:=Sheets("Sheet7")

این باعث می شود که کاربرگ قبل از Sheet7 به جای بعد از آن قرار گیرد.

اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

looks_5نام شما برای نمایش - اختیاری
حریم شخصی : آدرس ایمیل شما محفوظ میماند و برای استفاده های تجاری و تبلیغاتی به کار نمی رود
عدد چهار رقمی در تصویر را وارد کنید

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

0 پاسخ وجود دارد

سوال مشابهی یافت نشد

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

23.2k سوال

8.5k پاسخ

613 دیدگاه

10.8k کاربر

141 نفر آنلاین
1 عضو و 140 مهمان در سایت حاضرند
اعضای حاضر در سایت
بازدید امروز: 9229
بازدید دیروز: 13001
بازدید کل: 19463523
...