Jinsi ya kunakili karatasi katika Excel na VBA

  • Shiriki Hii
Michael Brown

Mafunzo hutoa mkusanyiko wa makro ili kunakili laha katika Excel: nakala na ubadilishe jina kulingana na thamani ya seli, nakili laha nyingi, nakili laha amilifu kwenye faili nyingine bila kuifungua, na zaidi.

Kunakili laha wewe mwenyewe katika Excel ni haraka sana na moja kwa moja... ikiwa inafanywa mara moja au mbili tu. Kunakili laha nyingi mara nyingi ni jambo la kuchosha na linatumia wakati. Kwenye ukurasa huu, utapata makro kadhaa muhimu ya kufanyia kazi hii kiotomatiki.

    Excel VBA kunakili laha kwenye kitabu kipya cha kazi

    Hii rahisi zaidi ya mstari mmoja macro hufanya. hasa jina lake linapendekeza - kunakili laha amilifu kwenye kitabu kipya cha kazi.

    Public Sub CopySheetToNewWorkbook() activeSheet.Nakili Mwisho Ndogo

    Nakili laha nyingi katika Excel ukitumia VBA

    Kama ungependa nakili laha kadhaa kutoka kwa kitabu kinachotumika hadi kipya, chagua laha zote za kazi zinazokuvutia na uendeshe jumla hii:

    Nakala Ndogo ya UmmaSelectedSheets() ActiveWindow.SelectedSheets.Nakili Mwisho Ndogo

    Excel VBA ili kunakili laha kwenye kitabu kingine cha kazi

    Kulingana na mahali unapotaka kuingiza laha iliyonakiliwa, tumia mojawapo ya makro zifuatazo.

    Nakili laha hadi mwanzo wa kitabu kingine cha kazi

    Jumla hii inakili laha amilifu kabla laha kazi nyingine zote katika faili lengwa, Book1 katika mfano huu. Ili kunakili hadi faili nyingine, badilisha "Book1.xlsx" na jina kamili la kitabu chako cha kazi unacholenga.

    Subira ya Umma.CopySheetToBeginningAnotherWorkbook() activeSheet.Copy Before:=Vitabu vya kazi( "Book1.xlsx" ).Laha(1) Mwisho Ndogo

    Nakili laha hadi mwisho wa kitabu kingine cha kazi

    Kipande hiki cha msimbo kinarudufisha laha ya kazi inayotumika na inaweka nakala hadi mwisho wa Book1 . Tena, tafadhali kumbuka kubadilisha "Book1.xlsx" na jina la kitabu chako cha kazi.

    Public Sub CopySheetToEndAnotherWorkbook() activeSheet.Copy After:=Workbooks( "Book1.xlsx" ).Sheets(Workbooks( "Book1.xlsx) " ).Karatasi.Hesabu) Maliza Ndogo

    Kumbuka. Ili makro kufanya kazi, kitabu cha kazi kinacholengwa lazima kihifadhiwe kwenye diski kuu au mtandao wako.

    Nakili laha kwenye kitabu cha kazi kilichochaguliwa

    Ili kuweza kunakili laha ya sasa kwenye kitabu chochote cha kazi kilichofunguliwa, unaweza kuunda UserForm (inayoitwa UserForm1 ) na ListBox udhibiti ( inayoitwa ListBox1 ) na vitufe viwili:

    Ifuatayo, bofya mara mbili kwenye fomu na ubandike msimbo ulio hapa chini katika dirisha la Msimbo:

    Public SelectedWorkbook As String Private Sub UserForm_Initialize() SelectedWorkbook = "" ListBox1.Futa Kwa Kila wbk Katika Application.Workbooks ListBox1.AddItem (wbk.Name) Inayofuata Mwisho Sub Private Sub CommandButton1_Click() Ikiwa ListBox1.ListIndex > -1 Kisha SelectedWorkbook = ListBox1.List(ListBox1.ListIndex) End If Me.Ficha End Sub Private Sub CommandButton2_Click() SelectedWorkbook = "" Me.Ficha Mwisho Sub

    Ukiwa na UserForm mahali pake, unaweza kutumia mojawapo ya yafuatayo. macros kunakililaha inayotumika kwenye kitabu cha kazi unachokichagua.

    Nakili laha kwa mwanzo wa kitabu cha kazi kilichochaguliwa :

    Nakala Ndogo ya UmmaToBeginningAnotherWorkbook() Pakia UserForm1 UserForm1.Onyesha Iwapo (UserForm1.SelectedWorkbook " " ) Kisha activeSheet.Copy Before:=Workbooks(UserForm1.SelectedWorkbook). Laha(1) Maliza Ikipakuliwa UserForm1 Mwisho Ndogo

    Nakili laha hadi mwisho wa kitabu cha kazi kilichochaguliwa :

    Public Sub CopySheetToEndAnotherWorkbook() Pakia UserForm1 UserForm1.Onyesha Iwapo (UserForm1.SelectedWorkbook "" ) Kisha activeSheet.Copy After:=Workbooks( _ UserForm1.SelectedWorkbook).Laha( _ Vitabu vya Kazi(UserForm1.SelectedWorksheets1 UnloadWorkbook)). Maliza Ndogo

    Inapoendeshwa katika Excel, jumla itakuonyesha orodha ya vitabu vyote vya kazi vilivyofunguliwa sasa. Unachagua inayohitajika na ubofye Sawa:

    Excel macro ili kunakili laha na kubadilisha jina

    Unaponakili laha katika Excel, nakala inapewa jina katika umbizo chaguo-msingi kama Jedwali1 (2) . Macro zifuatazo zinaweza kukuepusha na matatizo ya kubadilisha jina chaguo-msingi wewe mwenyewe.

    Msimbo huu unarudia lahakazi inayotumika, huita nakala kama "Jedwali la Kujaribu" (una uhuru wa kuibadilisha na jina lingine lolote unalopenda) , na kuweka laha iliyonakiliwa mwishoni mwa kitabu cha kazi cha sasa.

    Public Sub CopySheetAndRenamePredefined() activeSheet.Copy After:=Worksheets(Sheets.Count) Kwenye Hitilafu Resume Next activeSheet.Name ="Laha ya Jaribio" Maliza Ndogo

    Ili kuruhusu mtumiaji kubainisha jina la laha iliyonakiliwa , tumia msimbo huu:

    Public Sub CopySheetAndRename() Dim newName As string On Error Resume Next newName = InputBox( "Ingiza jina la laha ya kazi iliyonakiliwa" ) Ikiwa Jina jipya "" Kisha activeSheet. Copy After:=Worksheets(Sheets.Count) Kwenye Hitilafu Rejea Inayofuata activeSheet.Name = newName End If End Sub

    Baada ya kuendesha, makro huonyesha kisanduku cha ingizo kifuatacho, ambamo unaandika jina unalotaka na ubonyeze Sawa:

    Excel macro ili kunakili laha na kubadilisha jina kulingana na thamani ya seli

    Katika baadhi ya hali, inaweza kuwa rahisi zaidi kutaja nakala na thamani maalum ya seli, kwa mfano, kichwa cha safu. Kwa hili, unachukua tu nambari iliyo hapo juu na kusambaza thamani ya kisanduku kilichochaguliwa kwa sasa kwenye kisanduku cha kuingiza kiotomatiki. Kama ilivyokuwa kwa mfano uliopita, nakala itawekwa mwishoni mwa kitabu cha kazi kinachotumika.

    Sehemu ya ujanja zaidi itakuwa kuwafanya watumiaji wako kuchagua kisanduku sahihi kila wakati kabla ya kuendesha. the macro :)

    Public Sub CopySheetAndRenameByCell() Fifisha NewName Kama Kamba Kwenye Hitilafu Endelea tena Next newName = InputBox( "Ingiza jina la lahakazi iliyonakiliwa" , "Nakili lahakazi" , ActiveCell.Value) IkiwaJina jipya "" Kisha ActiveSheet. Nakili Baada ya:=Laha za Kazi(Sheets.Count) Hitilafu Imewashwa Endelea na Inayofuata activeSheet.Name = newName Maliza Kama Maliza Ndogo

    Vinginevyo, unaweza kuweka msimbo mgumu anwani yakisanduku ambacho nakala inapaswa kupewa jina, kisanduku A1 katika msimbo ulio hapa chini. Ili kutaja laha ya kazi iliyonakiliwa kulingana na kisanduku kingine, badilisha A1 na marejeleo ya seli yanayofaa.

    Public Sub CopySheetAndRenameByCell2() Dim wks Kama Laha ya Kazi Weka wks = activeSheet activeSheet.Copy After:=Worksheets(Sheets.Count) If wks.Range ( "A1" ).Thamani "" Kisha Kwa Hitilafu Endelea tena Inayofuata activeSheet.Name = wks.Range( "A1" ). Thamani Mwisho Kama wks.Amilisha End Sub

    Macro ili kunakili laha ya kazi kwenye kitabu cha kazi kilichofungwa

    Jumla hii inakili laha amilifu hadi mwisho wa kitabu cha kazi kilichofungwa. Jina la kitabu kingine cha kazi halijaainishwa katika msimbo - macro itafungua dirisha la kawaida la Windows Explorer na kukuwezesha kuchagua faili yoyote lengwa:

    Baada ya kuchagua faili. na ubofye Fungua , jumla itanakili laha amilifu na kufunga kitabu cha kazi lengwa kiotomatiki.

    Public Sub CopySheetToClosedWorkbook() Dim fileName Dim closedKitabu Kama Kitabu cha Kazi Dim currentSheet Kama Laha ya Kazi fileName = Application.GetOpenFilename( "Excel Faili (*.xlsx), *.xlsx" ) Ikiwa Jina la faili Si Kweli Kisha Application.ScreenUpdating = False Set currentSheet = Application.activeSheet Set closedBook = Vitabu vya Kazi. Fungua (fileName) currentSheet.Copy After:=closedBook.Sheets(closedBook.Worksheets.Count) imefungwaKitabu. Funga ( Kweli ) Application.ScreenUpdating = True End If End Sub

    Excel VBA kunakili laha kutoka kwa kitabu kingine cha kazi bilakufungua

    Makro hii hukuwezesha kunakili laha ya kazi kutoka faili nyingine ya Excel bila kuifungua. Laha iliyonakiliwa itaingizwa mwishoni mwa kitabu cha kazi cha sasa.

    Kumbuka tu kubadilisha baadhi ya msimbo:

    • C:\Users\XXX\Documents\ Target_Book.xlsx inapaswa kubadilishwa hadi njia halisi na jina la kitabu cha kazi ambacho ungependa kunakili laha.
    • Laha1 inapaswa kubadilishwa na jina la laha unayotaka kunakili.
    Public Sub CopySheetFromClosedWorkbook() Dim sourceBook As Workbook Application.ScreenUpdating = False Set sourceBook = Vitabu vya Kazi. Fungua ( "C:\Users\XXX\Documents\Target_Book.xlsx" ) sourceBook.Sheets( "Sheet1" ).Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) sourceBook. Funga Application.ScreenUpdating = True End Sub

    Excel VBA ili kunakili laha mara nyingi

    Wakati mwingine, unaweza kuhitaji kunakili laha moja zaidi ya mara moja, kwa mfano ili kujaribu fomula tofauti kwenye seti moja ya data. Hili linaweza kufanywa kwa urahisi kwa kutumia jumla ifuatayo.

    Public Sub DuplicateSheetMultipleTimes() Dim n As Integer On Error Resume Next n = InputBox( "Unataka kutengeneza nakala ngapi za laha amilifu?" ) Ikiwa n > = 1 Kisha Kwa numtimes = 1 hadi n activeSheet.Copy After:=ActiveWorkbook.Sheets(Worksheets.Count) Mwisho Inayofuata Kama Mwisho Ndogo

    Fungua laha asili, endesha jumla, taja ni nakala ngapi za laha amilifu.unataka kutengeneza, na ubofye Sawa :

    Jinsi ya kunakili laha katika Excel na VBA

    Ili kunakili laha katika Excel ukiwa na mojawapo ya makro yaliyo hapo juu, unaweza kuingiza msimbo wa VBA kwenye kitabu chako mwenyewe au kuendesha jumla kutoka kwa sampuli ya kitabu chetu cha kazi.

    Jinsi ya kuongeza jumla kwenye kitabu chako cha kazi

    Ili kuingiza msimbo kwenye kitabu chako cha kazi, tekeleza hatua hizi:

    1. Fungua lahakazi unayotaka kunakili.
    2. Bonyeza Alt + F11 ili kufungua Kihariri cha Msingi cha Visual.
    3. Washa. kidirisha cha kushoto, bofya kulia Kitabu hiki cha Kazi , na kisha ubofye Ingiza > Moduli .
    4. Bandika msimbo kwenye dirisha la Msimbo.
    5. Bonyeza F5 ili kuendesha jumla.

    Kwa maelekezo ya kina ya hatua kwa hatua, tafadhali angalia Jinsi ya kuingiza msimbo wa VBA katika Excel.

    Jinsi ya kuendesha jumla kutoka kwa sampuli ya kitabu chetu cha kazi

    Vinginevyo, unaweza kupakua sampuli ya kitabu chetu cha kazi kwa Nakala za Laha za Excel na utekeleze msimbo kutoka hapo.

    Sampuli ya kitabu cha kazi kina makro zifuatazo:

    CopySheetToNewWorkbook - kunakili cu kodi laha ya kazi kwenye kitabu kipya cha kazi.

    CopySelectedLaha - inakili laha nyingi unazochagua kwenye kitabu kipya cha kazi.

    CopySheetToBeginningAnotherWorkbook - kunakili laha amilifu hadi mwanzo wa kitabu kingine cha kazi.

    CopySheetToEndAnotherWorkbook - inakili laha amilifu hadi mwisho wa faili nyingine ya Excel.

    CopySheetAndRename - nakala ya sasa karatasi,huipa jina kama ilivyobainishwa na mtumiaji, na kuweka nakala hiyo baada ya laha zingine zote kwenye kitabu cha kazi cha sasa.

    CopySheetAndRenamePredefined - inanakili laha amilifu, inatoa jina la msimbo ngumu kwa nakala na kuiweka. mwishoni mwa kitabu cha kazi cha sasa.

    CopySheetAndRenameByCell - hutengeneza nakala ya laha inayotumika na kuipatia jina kulingana na thamani ya seli iliyochaguliwa.

    CopySheetAndRenameByCell2 - kunakili laha amilifu na kulibadilisha jina kulingana na anwani ya seli yenye msimbo mgumu.

    CopySheetToClosedWorkbook - hukuruhusu kunakili laha kwenye kitabu cha kazi kilichofungwa.

    CopySheetFromClosedWorkbook - hukuwezesha kunakili laha kutoka faili nyingine ya Excel bila kuifungua.

    DuplicateSheetMultipleTimes - hukuwezesha kunakili laha katika Excel mara nyingi.

    Kwa endesha jumla katika Excel yako, fanya tu yafuatayo:

    1. Fungua kitabu cha kazi kilichopakuliwa na uwashe yaliyomo ukiombwa.
    2. Fungua kitabu chako cha kazi na uende kwenye laha unayotaka nakala.
    3. <1 7>Katika laha yako ya kazi, bonyeza Alt + F8 , chagua jumla ya kuvutia, na ubofye Run .

    Hivyo ndivyo unavyoweza kunakili karatasi katika Excel na VBA. Ninakushukuru kwa kusoma na natumai kukuona kwenye blogi yetu wiki ijayo!

    Michael Brown ni mpenda teknolojia aliyejitolea na mwenye shauku ya kurahisisha michakato changamano kwa kutumia zana za programu. Akiwa na uzoefu wa zaidi ya muongo mmoja katika tasnia ya teknolojia, ameboresha ujuzi wake katika Microsoft Excel na Outlook, pamoja na Majedwali ya Google na Hati. Blogu ya Michael imejitolea kushiriki maarifa na ujuzi wake na wengine, kutoa vidokezo na mafunzo ambayo ni rahisi kufuata ili kuboresha tija na ufanisi. Iwe wewe ni mtaalamu aliyebobea au umeanza, blogu ya Michael inatoa maarifa muhimu na ushauri wa vitendo ili kupata manufaa zaidi kutoka kwa zana hizi muhimu za programu.