فهرست مطالب
این آموزش مجموعهای از ماکروها را برای تکثیر برگهها در اکسل ارائه میکند: کپی و تغییر نام براساس مقدار سلول، کپی کردن چندین برگه، کپی کردن یک کاربرگ فعال به فایل دیگری بدون باز کردن آن، و موارد دیگر.
کپی دستی برگه ها در اکسل بسیار سریع و ساده است... اگر فقط یک یا دو بار انجام شود. چند بار کپی کردن چندین برگه خسته کننده و وقت گیر است. در این صفحه، تعداد انگشت شماری از ماکروهای مفید برای خودکارسازی این کار را خواهید یافت.
Excel VBA برای کپی کردن برگه در کتاب کار جدید
این ساده ترین ماکرو یک خطی انجام می دهد. دقیقاً همان چیزی که نام آن نشان می دهد - برگه فعال را در یک کتاب کار جدید کپی می کند.
Public Sub CopySheetToNewWorkbook() activeSheet.Copy End Subچند برگه را در Excel با VBA کپی کنید
اگر می خواهید چندین برگه را از کتاب کار فعال به یک برگه جدید کپی کنید، همه کاربرگ های مورد علاقه را انتخاب کنید و این ماکرو را اجرا کنید:
Public Sub CopySelectedSheets() ActiveWindow.SelectedSheets.Copy End SubExcel VBA برای کپی کردن برگه در کتاب کار دیگر
بسته به جایی که می خواهید برگه کپی شده را درج کنید، از یکی از ماکروهای زیر استفاده کنید.
کپی برگه در ابتدای یک کتاب کار دیگر
این ماکرو صفحه فعال را قبل از آن کپی می کند. همه کاربرگ های دیگر در فایل مقصد، Book1 در این مثال. برای کپی کردن در فایل دیگری، نام کامل کتاب کار مورد نظر خود را جایگزین "Book1.xlsx" کنید.
Public SubCopySheetToBeginningAnotherWorkbook() activeSheet.Copy Before:=Workbooks("Book1.xlsx"). Sheets(1) End Subکپی برگه به انتهای یک کتاب کار دیگر
این قطعه کد کاربرگ فعال را کپی می کند و کپی را در انتهای کتاب1 قرار می دهد. دوباره، لطفاً به یاد داشته باشید که نام کتاب کار مقصد خود را جایگزین "Book1.xlsx" کنید.
Public Sub CopySheetToEndAnotherWorkbook() activeSheet.Copy After:=Workbooks( "Book1.xlsx" ).Sheets(Workbooks( "Book1.xlsx " ).کاربرگ. شمارش) پایان زیرتوجه. برای اینکه ماکروها کار کنند، کتاب کار مورد نظر باید در هارد دیسک یا شبکه شما ذخیره شود.
کپی برگه در یک کتاب کار انتخابی
برای اینکه بتوانید برگه فعلی را در هر کتاب کاری باز کپی کنید. می توانید یک UserForm (با نام UserForm1 ) با یک کنترل ListBox ( به نام ListBox1 ) و دو دکمه ایجاد کنید:
بعد، روی فرم دوبار کلیک کنید و کد زیر را در پنجره کد قرار دهید:
Public SelectedWorkbook As String Private Sub UserForm_Initialize() SelectedWorkbook = "" ListBox1.Clear For Every wbk In Application.Workbooks ListBox1.AddItem (wbk.Name) پایان بعدی Sub Private Sub CommandButton1_Click() If ListBox1.ListIndex > -1 سپس SelectedWorkbook = ListBox1.List(ListBox1.ListIndex) End If Me.Hide End Sub Private Sub CommandButton2_Click() SelectedWorkbook = "" Me.Hide End Subبا درج UserForm، می توانید از یکی از موارد زیر استفاده کنید ماکروها برای کپی کردنبرگه فعال در کتاب کار انتخابی شما.
کپی برگه در آغاز کتاب کار انتخابی :
Public Sub CopySheetToBeginningAnotherWorkbook() Load UserForm1 UserForm1.Show If (UserForm1.SelectedWorkbook " " ) سپس activeSheet.Copy Before:=Workbooks(UserForm1.SelectedWorkbook). Sheets(1) End If Unload UserForm1 End Subصفحه را در انتهای کتاب کار انتخابی کپی کنید :
Public Sub CopySheetToEndAnotherWorkbook() بارگذاری UserForm1 UserForm1.Show If (UserForm1.SelectedWorkbook "") سپس activeSheet.Copy After:=Workbooks( _UserForm1.SelectedWorkbook).Sheets( _ Workbooks(UserFormSelectFormshe.Ifork). End Subهنگامی که در اکسل اجرا میشود، ماکرو لیستی از تمام کتابهای کاری باز شده فعلی را به شما نشان میدهد. شما مورد مورد نیاز را انتخاب کرده و روی OK کلیک کنید:
ماکرو اکسل برای کپی کردن برگه و تغییر نام
هنگامی که یک برگه را در اکسل کپی میکنید، به ماکرو یک Replica داده میشود. در قالب پیش فرض مانند Sheet1 (2) نام ببرید. ماکروهای زیر میتوانند از مشکل تغییر نام پیشفرض به صورت دستی جلوگیری کنند.
این کد کاربرگ فعال را کپی میکند، کپی را به عنوان "برگ آزمایشی" نامگذاری میکند (شما آزاد هستید که آن را با هر نام دیگری که دوست دارید جایگزین کنید) ، و برگه کپی شده را در انتهای کتاب کار فعلی قرار می دهد.
Public Sub CopySheetAndRenamePredefined() activeSheet.Copy After:=Worksheets(Sheets.Count) روی خطا Resume بعدی activeSheet.Name ="Test Sheet" End Subبرای اینکه کاربر بتواند نام برگه کپی شده را مشخص کند ، از این کد استفاده کنید:
Public Sub CopySheetAndRename() Dim newName As String On Error Resume Next newName = InputBox( "نام کاربرگ کپی شده را وارد کنید" ) اگر newName "" سپس activeSheet.Copy After:=Worksheets(Sheets.Count) On Error Resume بعدی activeSheet.Name = newName پایان اگر پایان Subپس از اجرا، ماکرو کادر ورودی زیر را نمایش می دهد که در آن نام مورد نظر را تایپ کرده و OK را فشار دهید:
ماکرو اکسل برای کپی برگه و تغییر نام بر اساس مقدار سلول
در در برخی شرایط، نامگذاری یک کپی با یک مقدار سلول خاص، به عنوان مثال، عنوان ستون، راحت تر است. برای این کار، شما به سادگی کد بالا را بگیرید و مقدار سلول انتخاب شده فعلی را به طور خودکار در کادر ورودی قرار دهید. مانند مثال قبلی، کپی در انتهای کتاب کار فعال قرار خواهد گرفت.
مشکلترین بخش این است که کاربران شما همیشه سلول صحیح را قبل از اجرا انتخاب کنند. ماکرو :)
Public Sub CopySheetAndRenameByCell() کم نور newName به عنوان رشته در خطا Resume Next newName = InputBox( "نام کاربرگ کپی شده را وارد کنید" , "Copy worksheet" , ActiveCell.Value) اگر newName "" سپس activeSheet. Copy After:=Worksheets(Sheets.Count) On Error Resume Next activeSheet.Name = newName End اگر End Subبه طور متناوب، می توانید آدرسسلول که باید با آن کپی نامگذاری شود، سلول A1 در کد زیر. برای نامگذاری کاربرگ کپیشده بر اساس سلول دیگری، A1 را با یک مرجع سلولی مناسب جایگزین کنید.
Public Sub CopySheetAndRenameByCell2() کم نور wks As Worksheet Set wks = activeSheet activeSheet.Copy After:=Worksheets(Sheets.Count) If wks.Range ( "A1").مقدار "" سپس در خطا از سرگیری بعدی activeSheet.Name = wks.Range( "A1" ).Value End If wks.End SubMacro برای کپی کردن کاربرگ در یک کتاب بسته را فعال کنید
این ماکرو برگه فعال را در انتهای یک کتاب کار بسته کپی می کند. نام کتاب کار دیگری در کد مشخص نشده است - ماکرو پنجره استاندارد Windows Explorer را باز می کند و به شما امکان می دهد هر فایل مقصدی را انتخاب کنید:
پس از انتخاب فایل و روی Open کلیک کنید، ماکرو برگه فعال را کپی می کند و کتاب کار مورد نظر را به طور خودکار می بندد.
Public Sub CopySheetToClosedWorkbook() Dim fileName تیره کردن بسته بسته به عنوان کتاب کار کم نور فعلی صفحه به عنوان کاربرگ نام فایل = Application.GetOpenFilename( "Excel فایل ها (*.xlsx)، *.xlsx" ) اگر نام فایل نادرست است، سپس Application.ScreenUpdating = تنظیم نادرست currentSheet = مجموعه Application.activeSheet بسته بسته = کتاب کار. باز کردن (fileName) currentSheet.Copy After:=closedBook.Sheets(closedBook.Worksheets.Count) closeBook. Close ( True ) Application.ScreenUpdating = True End If End SubExcel VBA برای کپی کردن برگه از Workbook دیگر بدونopen
این ماکرو شما را قادر می سازد تا یک کاربرگ را از یک فایل اکسل دیگر بدون باز کردن آن کپی کنید. برگه کپی شده در انتهای کتاب کار فعلی درج می شود.
فقط به یاد داشته باشید که چند جایگزین در کد انجام دهید:
- C:\Users\XXX\Documents\ Target_Book.xlsx باید به مسیر واقعی و نام کتاب کاری که میخواهید یک برگه را از آن کپی کنید، تغییر دهید.
- Sheet1 باید با نام برگهای که میخواهید کپی کنید جایگزین شود.
Excel VBA برای تکثیر ورق چندین بار
گاهی اوقات، ممکن است لازم باشد یک برگه را بیش از یک بار کپی کنید، به عنوان مثال برای آزمایش فرمول های مختلف روی یک مجموعه داده. این کار را می توان به راحتی با ماکرو زیر انجام داد.
Public Sub DuplicateSheetMultipleTimes() Dim n به عنوان عدد صحیح در خطا Resume Next n = InputBox( "چند نسخه از برگه فعال می خواهید بسازید؟" ) اگر n > = 1 سپس برای numtimes = 1 به n activeSheet.Copy After:=ActiveWorkbook.Sheets(Worksheets.Count) End End If End Subصفحه اصلی را باز کنید، ماکرو را اجرا کنید، مشخص کنید چند نسخه از برگه فعالمی خواهید بسازید و روی OK کلیک کنید:
نحوه تکثیر برگه ها در اکسل با VBA
برای کپی کردن یک برگه در اکسل با یکی از ماکروهای بالا، می توانید کد VBA را در کتاب خود وارد کنید یا یک ماکرو از نمونه کار ماکرو اجرا کنید.
چگونه یک ماکرو به کتاب کار خود اضافه کنید
برای درج کد کد موجود در کتاب کار خود، این مراحل را انجام دهید:
- صفحه کاری را که می خواهید کپی کنید باز کنید.
- Alt + F11 را فشار دهید تا ویرایشگر ویژوال بیسیک باز شود.
- روشن در پنجره سمت چپ، روی ThisWorkbook کلیک راست کرده و سپس روی Insert > Module کلیک کنید.
- کد را در پنجره Code جایگذاری کنید.
- F5 را فشار دهید تا ماکرو اجرا شود.
برای دستورالعمل های گام به گام دقیق، لطفاً به نحوه درج کد VBA در اکسل مراجعه کنید.
نحوه اجرا یک ماکرو از نمونه کار ما
به طور متناوب، می توانید نمونه کار ما را در برگه های اکسل تکراری دانلود کنید و کد را از آنجا اجرا کنید.
کتاب کار نمونه حاوی ماکروهای زیر است:
CopySheetToNewWorkbook - cu را کپی می کند کاربرگ را به یک کتاب کار جدید rrent کنید.
CopySelectedSheets - چندین برگه را که انتخاب می کنید در یک کتاب کار جدید کپی می کند.
CopySheetToBeginningAnotherWorkbook - برگه فعال را کپی می کند. به ابتدای یک کتاب کار دیگر.
CopySheetToEndAnotherWorkbook - برگه فعال را در انتهای یک فایل اکسل دیگر کپی می کند.
CopySheetAndRename - نسخه فعلی را کپی می کند. ورق،آن را همانطور که توسط کاربر مشخص شده تغییر نام می دهد، و کپی را بعد از همه برگه های دیگر در کتاب کار فعلی قرار می دهد.
CopySheetAndRenamePredefined - برگه فعال را کپی می کند، یک نام کد سخت به کپی می دهد و آن را قرار می دهد. در پایان کتاب کار فعلی.
CopySheetAndRenameByCell - یک کپی از برگه فعال می سازد و آن را بر اساس مقدار سلول انتخاب شده تغییر نام می دهد.
CopySheetAndRenameByCell2 - برگه فعال را کپی می کند و آن را بر اساس آدرس سلول کدگذاری شده تغییر نام می دهد.
CopySheetToClosedWorkbook - به شما امکان می دهد برگه را در یک کتاب کار بسته کپی کنید.
CopySheetFromClosedWorkbook - به شما امکان می دهد یک برگه را از یک فایل اکسل دیگر بدون باز کردن آن کپی کنید.
DuplicateSheetMultipleTimes - به شما امکان می دهد یک برگه را چندین بار در اکسل کپی کنید.
به ماکرو را در اکسل خود اجرا کنید، فقط کارهای زیر را انجام دهید:
- کتاب کار دانلود شده را باز کنید و در صورت درخواست، محتوا را فعال کنید.
- کتاب کار خود را باز کنید و به برگه مورد نظر بروید. کپی کنید. <1 7>در کاربرگ خود، Alt + F8 را فشار دهید، ماکرو مورد علاقه را انتخاب کنید و روی Run کلیک کنید.
به این ترتیب می توانید کپی کنید یک برگه در اکسل با VBA. از خواندن شما سپاسگزارم و امیدوارم هفته آینده شما را در وبلاگ خود ببینم!