VBA yordamida Excelda varaqni qanday ko'paytirish mumkin

  • Buni Baham Ko'Ring
Michael Brown

O'quv qo'llanma Excelda varaqlarni takrorlash uchun makroslar to'plamini taqdim etadi: hujayra qiymatiga qarab nusxa ko'chirish va nomini o'zgartirish, bir nechta varaqlardan nusxa ko'chirish, faol ish varag'ini ochmasdan boshqa faylga nusxalash va boshqalar.

Excelda varaqlarni qo'lda nusxalash juda tez va tushunarli... bir yoki ikki marta bajarilsa. Bir nechta varaqlarni bir necha marta takrorlash zerikarli va vaqt talab etadi. Ushbu sahifada siz ushbu vazifani avtomatlashtirish uchun bir nechta foydali makroslarni topasiz.

    Excel VBA varaqni yangi ish kitobiga nusxalash

    Bu eng oddiy bir qatorli makros aynan uning nomi taklif qilgan narsa - faol varaqni yangi ish kitobiga ko'chiradi.

    Public Sub CopySheetToNewWorkbook() activeSheet.Copy End Sub

    VBA yordamida Excelda bir nechta varaqlarni nusxalash

    Agar xohlasangiz faol ish kitobidan bir nechta varaqlarni yangisiga ko'chiring, qiziqtirgan barcha ish varaqlarini tanlang va ushbu makrosni ishga tushiring:

    Public Sub CopySelectedSheets() ActiveWindow.SelectedSheets.Copy End Sub

    Varaqni boshqa ish kitobiga nusxalash uchun Excel VBA

    Ko‘chirilgan varaqni qaerga qo‘yish kerakligiga qarab, quyidagi makroslardan birini ishlating.

    Vaqshni boshqa ish kitobining boshiga nusxalash

    Ushbu makros faol varaqdan oldin nusxa ko‘chiradi. maqsad fayldagi barcha boshqa ish varaqlari, bu misolda Kitob1 . Boshqa faylga nusxalash uchun “Book1.xlsx”ni maqsadli ish kitobingizning toʻliq nomi bilan almashtiring.

    Umumiy subCopySheetToBeginningAnotherWorkbook() activeSheet.Copy Before:=Workbooks( "Book1.xlsx" ).Sheets(1) End Sub

    Varaqni boshqa ish kitobining oxiriga nusxalash

    Ushbu kod qismi faol ishchi varaqni takrorlaydi va nusxani Kitob1 oxiriga qo'yadi. Yana, iltimos, "Book1.xlsx" ni maqsadli ish kitobingiz nomi bilan almashtirishni unutmang.

    Public Sub CopySheetToEndAnotherWorkbook() activeSheet.Copy After:=Workbooks( "Book1.xlsx" ).Sheets(Workbooks( "Book1.xlsx" " ).Worksheets.Count) End Sub

    Eslatma. Makroslar ishlashi uchun maqsadli ish kitobi qattiq diskda yoki tarmoqda saqlanishi kerak.

    Varaqni tanlangan ish kitobiga nusxalash

    Joriy varaqni istalgan ochiq ish kitobiga nusxalash uchun, ListBox boshqaruvi ( ListBox1 ) va ikkita tugma bilan UserForm ( UserForm1 deb nomlangan) yaratishingiz mumkin:

    Keyin, shaklni ikki marta bosing va quyidagi kodni Kod oynasiga qo'ying:

    Public SelectedWorkbook as String Private Sub UserForm_Initialize() SelectedWorkbook = "" ListBox1.Clear Har bir wbk In Application.Workbooks ListBox1.AddItem (wbk.Name) Keyingi End Sub Private Sub CommandButton1_Click() If ListBox1.ListIndex > -1 Keyin SelectedWorkbook = ListBox1.List(ListBox1.ListIndex) End If Me.Hide End Sub Private Sub CommandButton2_Click() SelectedWorkbook = "" Me. Hide End Sub

    UserForm o'rnatilgan bo'lsa, siz quyidagilardan birini ishlatishingiz mumkin. nusxalash uchun makroslarfaol varaqni o'zingiz tanlagan ish kitobiga ko'chiring.

    Varaqni tanlangan kitobning boshiga nusxa ko'chiring:

    Ommaviy Sub CopySheetToBeginningAnotherWorkbook() UserForm1 UserForm1-ni yuklang.Show If (UserForm1.SelectedWorkbook " " ) Keyin activeSheet.Copy Before:=Ish kitoblari(UserForm1.SelectedWorkbook).Sheets(1) End If UserForm1 End Subload bo'lsa

    Varaqni tanlangan ishchi kitobining oxiriga nusxalash:

    Umumiy Sub. CopySheetToEndAnotherWorkbook() UserForm1 UserForm1-ni yuklang.Show If (UserForm1.SelectedWorkbook "" ) Keyin activeSheet.Copy After:=Workbooks( _ UserForm1.SelectedWorkbook).Sheets( _ Workbooks(UserForm1.Inload UserForm1.SelectedWorkbook). End Sub

    Excelda ishga tushirilganda, makros sizga hozirda ochilgan barcha ish kitoblari ro'yxatini ko'rsatadi. Siz keraklisini tanlaysiz va OK tugmasini bosasiz:

    Varaqni nusxalash va nomini o'zgartirish uchun Excel makrosi

    Excelda varaqdan nusxa ko'chirganingizda, nusxaga nomini standart formatda, masalan, Shaxs 1 (2) . Quyidagi makroslar standart nomni qoʻlda oʻzgartirish muammosidan xalos qiladi.

    Ushbu kod faol ish varagʻini takrorlaydi, nusxani “Test varagʻi” deb nomlaydi (uni oʻzingizga yoqqan boshqa nom bilan almashtirishingiz mumkin) , va nusxalangan varaqni joriy ish kitobining oxiriga qo'yadi.

    Umumiy Sub CopySheetAndRenamePredefined() activeSheet.Copy After:=Worksheets(Sheets.Count) Xatoda Davom etish Keyingi activeSheet.Name ="Sinov varaqasi" End Sub

    Foydalanuvchiga nusxalangan varaq nomini belgilashga ruxsat berish uchun ushbu koddan foydalaning:

    Public Sub CopySheetAndRename() Dim newName as String On Xato Davom etish Keyingi newName = InputBox( "Ko'chirilgan ish varag'i nomini kiriting" ) Agar newName "" Keyin activeSheet.Copy After:=Worksheets(Sheets.Count) Xatoda Davom etish Keyingi activeSheet.Name = newName End If End Sub

    Ishga tushirishda makro quyidagi kiritish oynasini ko'rsatadi, unda siz kerakli nomni kiritasiz va OK tugmasini bosing:

    Vaqni nusxalash va katak qiymatiga qarab nomini o'zgartirish uchun Excel makrosi

    In ba'zi hollarda, ma'lum bir katak qiymatiga ega bo'lgan nusxani nomlash qulayroq bo'lishi mumkin, masalan, ustun sarlavhasi. Buning uchun siz shunchaki yuqoridagi kodni olasiz va avtomatik ravishda hozirda tanlangan katak qiymatini kiritish maydoniga kiritasiz. Oldingi misolda bo'lgani kabi, nusxa faol ish kitobining oxiriga joylashtiriladi.

    Eng qiyin tomoni, foydalanuvchilaringiz ishga tushirishdan oldin har doim to'g'ri katakchani tanlashlari kerak. makro :)

    Public Sub CopySheetAndRenameByCell() Dim newName as String On Xato Davom etish Keyingi newName = InputBox( "Nusxalangan ish varag'i nomini kiriting" , "Copy worksheet" , ActiveCell.Value) Agar newName "" Keyin activeSheet. Nusxalashdan keyin:=Worksheets(Sheets.Count) Xatoda Davom etish Keyingi activeSheet.Name = newName End If End Sub

    Shuningdek, siz manzilni qattiq kodlashingiz mumkin.nusxaga nom berilishi kerak bo'lgan katak , quyidagi koddagi A1 katak. Ko‘chirilgan ishchi varaqni boshqa yacheyka asosida nomlash uchun A1 ni tegishli yacheyka havolasi bilan almashtiring.

    Public Sub CopySheetAndRenameByCell2() Ishchi varag‘i sifatida xira ish varaqlarini o‘rnating wks = activeSheet activeSheet.Copy After:=Worksheets(Sheets.Count) If wks.Range ( "A1" ).Qiymat "" Keyin Xato Davom etish Keyingi activeSheet.Name = wks.Range( "A1" ).Value End If wks.Activate End Sub

    Ishchi varaqni yopiq ish kitobiga nusxalash uchun makro

    Ushbu makros faol varaqni yopiq ish kitobining oxiriga ko'chiradi. Kodda boshqa ish kitobining nomi ko'rsatilmagan - makro standart Windows Explorer oynasini ochadi va istalgan maqsad faylni tanlash imkonini beradi:

    Faylni tanlaganingizdan so'ng va Ochish tugmasini bosing, so'l faol varaqdan nusxa ko'chiradi va maqsadli ish kitobini avtomatik ravishda yopadi.

    Ommaviy Sub CopySheetToClosedWorkbook() Dim fileName Xira yopiq kitob Ishchi kitob sifatida xira joriy varaq Ishchi varaq sifatida fileName = Application.GetOpenFilename( "Excel" Fayllar (*.xlsx), *.xlsx" ) Agar fayl nomi noto'g'ri bo'lsa, unda Application.ScreenUpdating = False o'rnating currentSheet = Application.activeSheet o'rnating closeBook = Ish kitoblari. Ochiq (fileName) currentSheet.Copy After:=closedBook.Sheets(closedBook.Worksheets.Count) closeBook. Yopish ( True ) Application.ScreenUpdating = True End If End Sub

    Excel VBA varaqni boshqa ish kitobidan nusxa ko'chirish uchunochilish

    Ushbu makros boshqa Excel faylidan ishchi varaqni ochmasdan nusxalash imkonini beradi. Nusxalangan varaq joriy ish kitobining oxiriga kiritiladi.

    Shunchaki kodni bir nechta almashtirishni unutmang:

    • C:\Users\XXX\Documents\ Target_Book.xlsx siz varaqdan nusxa ko'chirmoqchi bo'lgan ish kitobining haqiqiy yo'li va nomiga o'zgartirilishi kerak.
    • Sheet1 siz nusxa olmoqchi bo'lgan varaq nomi bilan almashtirilishi kerak.
    Public Sub CopySheetFromClosedWorkbook() Dim sourcebook As Workbook Application.ScreenUpdating = False Set sourceBook = Workbooks. Oching ( "C:\Users\XXX\Documents\Target_Book.xlsx" ) sourceBook.Sheets( "Sheet1" ).Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) sourceBook. Yopish Application.ScreenUpdating = True End Sub

    Varaqni bir necha marta takrorlash uchun Excel VBA

    Ba'zan bir xil varaqni bir necha marta takrorlash kerak bo'lishi mumkin, masalan, bir xil ma'lumotlar to'plamida turli formulalarni sinab ko'rish uchun. Buni quyidagi makros bilan oson bajarish mumkin.

    Public Sub DuplicateSheetMultipleTimes() Dim n As Integer On Xato Davom etish Keyingi n = InputBox( "Faol varaqning nechta nusxasini yaratmoqchisiz?" ) If n > = 1 Keyin numtimes uchun = 1 To n activeSheet.Copy After:=ActiveWorkbook.Sheets(Worksheets.Count) Keyingi End If End Sub

    Asl varaqni oching, makrosni ishga tushiring, faol varaqning nechta nusxasini ko'rsatingyaratmoqchisiz va OK tugmasini bosing:

    VBA yordamida Excelda varaqlarni qanday ko'paytirish

    Excelda varaqni nusxalash uchun Yuqoridagi makroslardan biri bilan VBA kodini o'z kitobingizga kiritishingiz yoki namunaviy ish kitobimizdan makroni ishga tushirishingiz mumkin.

    Ishchi kitobingizga makrosni qanday qo'shish kerak

    Qo'shish uchun Ish daftaringizga kodni kiriting, quyidagi amallarni bajaring:

    1. Nusxa olmoqchi bo'lgan ishchi varaqni oching.
    2. Visual Basic muharririni ochish uchun Alt + F11 tugmalarini bosing.
    3. Yoqish. chap panelda ThisWorkbook -ni o'ng tugmasini bosing va Insert > Module -ni bosing.
    4. Kodni kod oynasiga joylashtiring.
    5. Makroni ishga tushirish uchun F5 tugmasini bosing.

    Batafsil bosqichma-bosqich ko'rsatmalar uchun VBA kodini Excelga qanday kiritish haqida qarang.

    Qanday ishga tushirish kerak Namunaviy ish kitobimizdan makro

    Shuningdek, siz bizning namunaviy ish kitobimizni Duplicate Excel Sheets dasturiga yuklab olishingiz va u yerdan kodni ishga tushirishingiz mumkin.

    Namunaviy ish kitobida quyidagi makroslar mavjud:

    CopySheetToNewWorkbook - kubni nusxalaydi ishchi varaqni yangi ish kitobiga rrent.

    CopySelectedSheets - siz tanlagan bir nechta varaqlarni yangi ish kitobiga ko'chiradi.

    CopySheetToBeginningAnotherWorkbook - faol varaqdan nusxa ko'chiradi. boshqa ish kitobining boshiga.

    CopySheetToEndAnotherWorkbook - faol varaqni boshqa Excel faylining oxiriga ko'chiradi.

    CopySheetAndRename - joriy varaqni takrorlaydi. varaq,uning nomini foydalanuvchi tomonidan ko'rsatilgandek o'zgartiradi va nusxani joriy ish kitobidagi barcha varaqlardan keyin qo'yadi.

    CopySheetAndRenamePredefined - faol varaqni takrorlaydi, nusxaga qattiq kodlangan nom beradi va uni joylashtiradi. joriy ish kitobining oxirida.

    CopySheetAndRenameByCell - faol varaqning nusxasini yaratadi va tanlangan katak qiymatiga qarab uning nomini o'zgartiradi.

    CopySheetAndRenameByCell2 - faol varaqdan nusxa ko'chiradi va qattiq kodlangan katak manzili asosida uning nomini o'zgartiradi.

    CopySheetToClosedWorkbook - varaqni yopiq ish kitobiga nusxalash imkonini beradi.

    CopySheetFromClosedWorkbook - varaqni boshqa Excel faylidan ochmasdan nusxalash imkonini beradi.

    DuplicateSheetMultipleTimes - Excelda varaqni bir necha marta takrorlash imkonini beradi.

    Kimga. makrosni Excel-da ishga tushiring, shunchaki quyidagilarni bajaring:

    1. Yuklab olingan ishchi kitobni oching va so'ralganda tarkibni yoqing.
    2. O'zingizning ishchi kitobingizni oching va kerakli varaqga o'ting. nusxa.
    3. <1 7>Ish varaqingizda Alt + F8 tugmalarini bosing, qiziqtirgan makroni tanlang va Ishga tushirish -ni bosing.

    Shunday qilib takrorlash mumkin VBA bilan Excelda varaq. O'qiganingiz uchun tashakkur va keyingi haftada blogimizda ko'rishga umid qilaman!

    Maykl Braun - dasturiy vositalardan foydalangan holda murakkab jarayonlarni soddalashtirishga ishtiyoqi bo'lgan maxsus texnologiya ishqibozi. Texnologiya sohasida o'n yildan ortiq tajribaga ega bo'lgan holda, u Microsoft Excel va Outlook, shuningdek, Google Sheets va Docs dasturlarida o'z mahoratini oshirdi. Mayklning blogi o'z bilimi va tajribasini boshqalar bilan baham ko'rishga, samaradorlik va samaradorlikni oshirish uchun amal qilish oson maslahatlar va o'quv qo'llanmalariga bag'ishlangan. Tajribali mutaxassismisiz yoki yangi boshlovchi boʻlasizmi, Mayklning blogi ushbu muhim dasturiy vositalardan maksimal darajada foydalanish uchun qimmatli tushunchalar va amaliy maslahatlarni taqdim etadi.