Kopējiet diapazonu no katras lapas vienā lapā, izmantojot Microsoft Excel VBA

Anonim

Šajā rakstā mēs izveidosim makro, lai kopētu datus no visām darbgrāmatas lapām uz jaunu lapu.

Neapstrādātie dati šajā piemērā ietver informāciju par darbiniekiem no dažādām nodaļām dažādās lapās. Mēs vēlamies apkopot informāciju par darbiniekiem vienā lapā.

Mēs esam izveidojuši makro “CopyRangeFromMultipleSheets” datu konsolidēšanai. Šo makro var palaist, noklikšķinot uz pogas “Konsolidēt datus”.

Makro izveidos jaunu darblapu un ievietos konsolidētos datus no visām darblapām.

Koda skaidrojums

“Looping” cauri visām lapām, lai pārbaudītu, vai pastāv “Master” lapa.

Par katru avotu šajā darba grāmatā. Darblapas

Ja Source.Name = "Master" Tad

MsgBox "Galvenā lapa jau pastāv"

Iziet no apakšnodaļas

Beigas Ja

Nākamais

Iepriekš minētais kods tiek izmantots, lai pārbaudītu, vai darbgrāmatā ir lapa “Galvenais”. Ja darbgrāmatā ir lapa “Galvenais”, kods tiek izvadīts un tiek parādīts kļūdas ziņojums.

Source.Range ("A1"). SpecialCells (xlLastCell) .Rinda

Iepriekš minētais kods tiek izmantots, lai iegūtu lapas pēdējās šūnas rindas numuru.

Source.Range ("A1", diapazons ("A1"). SpecialCells (xlLastCell)). Kopēt galamērķi. Range ("A" un DestLastRow)

Iepriekš minētais kods tiek izmantots, lai kopētu norādīto diapazonu uz definēto šūnu.

Lūdzu, sekojiet tālāk norādītajam kodam

 Sub CopyRangeFromMultipleSheets () 'Mainīgo lielumu deklarēšana Dim avots kā darblapa Dim Destination kā darblapa Dim SourceLastRow, DestLastRow As Long Application.ScreenUpdating = False' Looping caur visām lapām, lai pārbaudītu, vai katram avotam šajāWorkbook.Worksheets If Source.Name pastāv "Master" lapa = "Galvenais" Tad MsgBox "Galvenā lapa jau pastāv" Iziet Apakš beigas Ja nākamais "Jaunas lapas ievietošana pēc lapas" Galvenā "Iestatiet galamērķi = Darblapas. Pievienot (pēc: = Izklājlapas (" Galvenais ")) Destination.Name =" Meistars "'Pārmeklē visas darbgrāmatas lapas katram avotam šajā darba grāmatā. Darblapas" Novērst datu konsolidāciju no lapas "Galvenā" un "Galvenā", ja avots. Nosaukums "Galvenais" Un Avota nosaukums. Meistars Pēc tam .Range ("A1"). SpecialCells (xlLastCell). Rindas avots. Aktivizēt If Source.UsedRange.Count> 1 Tad DestLastRow = Sheets ("Master"). Diapazons ("A1"). SpecialCells (xlLastCell). Row If DestLastRow = 1 Tad 'datu kopēšana no avota lapas uz galamērķa lapu Source.Range ("A 1 ", diapazons (" A1 "). SpecialCells (xlLastCell)). Kopēt galamērķi. Diapazons (" A "un DestLastRow) Cits avots. Diapazons (" A2 ", diapazons (" A1 "). SpecialCells (xlCellTypeLastCell)). Kopēt Destination.Range ("A" & (DestLastRow + 1)) Beigas Ja beigas Ja Beigas Ja Nākamais Galamērķis. Aktivizēt Application.ScreenUpdating = True End Sub 

Ja jums patika šis emuārs, kopīgojiet to ar saviem draugiem Facebook. Varat arī sekot mums Twitter un Facebook.

Mēs labprāt uzklausītu jūsu viedokli, dariet mums zināmu, kā mēs varam uzlabot savu darbu un padarīt to labāku jums. Rakstiet mums e -pasta vietnē