Nukopijuokite diapazoną iš kiekvieno lapo į vieną lapą naudodami „Microsoft Excel“ VBA

Turinys

Šiame straipsnyje sukursime makrokomandą, kad nukopijuotume duomenis iš visų darbaknygės lapų į naują lapą.

Neapdorotus šio pavyzdžio duomenis sudaro išsami informacija apie darbuotojus iš skirtingų departamentų skirtinguose lapuose. Norime konsoliduoti išsamią informaciją apie darbuotojus į vieną lapą.

Duomenims konsoliduoti sukūrėme makrokomandą „CopyRangeFromMultipleSheets“. Šią makrokomandą galima paleisti spustelėjus mygtuką „Konsoliduoti duomenis“.

„Macro“ sukurs naują darbalapį ir įterps konsoliduotus duomenis iš visų darbalapių.

Kodo paaiškinimas

„Looping“ per visus lapus, kad patikrintumėte, ar yra „Master“ lapas.

Kiekvienam šaltiniui šioje darbo knygoje. Darbo lapai

Jei Source.Name = "Pagrindinis" Tada

„MsgBox“ pagrindinis lapas jau egzistuoja

Išeiti iš Sub

Pabaiga Jei

Kitas

Aukščiau pateiktas kodas naudojamas patikrinti, ar darbaknygėje yra „Pagrindinis“ lapas. Jei darbaknygėje yra „Pagrindinis“ lapas, tada kodas išeina ir rodomas klaidos pranešimas.

Source.Range ("A1"). SpecialCells (xlLastCell) .Eilutė

Viršuje esantis kodas naudojamas paskutinio lapo langelio eilutės numeriui gauti.

Source.Range ("A1", diapazonas ("A1"). SpecialCells (xlLastCell)). Kopijuoti paskirties vietą. Range ("A" ir DestLastRow)

Aukščiau pateiktas kodas naudojamas nukopijuoti nurodytą diapazoną į apibrėžtą langelį.

Sekite toliau pateiktą kodą

 Sub CopyRangeFromMultipleSheets () 'Deklaruojantys kintamieji Dim šaltinis kaip darbalapis Dim Destination kaip darbalapis Dim SourceLastRow, DestLastRow As Long Application.ScreenUpdating = False' Looping per visus lapus, kad patikrintumėte, ar yra kiekvieno puslapio „ThisWorkbook.Worksheets If Source.Name“ lapas „Pagrindinis“ = "Pagrindinis" Tada "MsgBox" pagrindinis lapas jau egzistuoja "Išeiti iš pabaigos pabaiga Jei kitas" Įterpkite naują lapą po "Pagrindinio" lapo Nustatykite paskirties vietą = darbalapius. Pridėti (po: = Lakštai ("Pagrindinis")) Destination.Name = " Pagrindinis "" Looping per visus lapus darbo knygoje kiekvienam šaltiniui šioje darbo knygoje. Darbo lapai "Duomenų iš pagrindinio ir pagrindinio lapo duomenų konsolidavimo neleidimas, jei šaltinis. Pavadinimas" Pagrindinis "ir Šaltinis. Pavadinimas" Pagrindinis "Tada SourceLastRow = Šaltinis .Range ("A1"). SpecialCells (xlLastCell) .Row Source.Activate If Source.UsedRange.Count> 1 Tada DestLastRow = Sheets ("Master"). Diapazonas ("A1"). SpecialCells (xlLastCell) .Row If DestLastRow = 1 Tada kopijuokite duomenis iš šaltinio lapo į paskirties lapą Source.Range ("A " Destination.Range ("A" & (DestLastRow + 1)) Pabaiga Jei pabaiga Jei pabaiga Jei kita paskirties vieta. Aktyvinti Application.ScreenUpdating = True End 

Jei jums patiko šis tinklaraštis, pasidalykite juo su draugais „Facebook“. Be to, mus galite sekti „Twitter“ ir „Facebook“.

Mes norėtume išgirsti jūsų nuomonę, praneškite mums, kaip galime pagerinti savo darbą ir padaryti jį geresnį. Rašykite mums el

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave