Kopioi alue, jossa on enemmän alueita määritettyyn taulukkoon Microsoft Excelin VBA: n avulla

Sisällysluettelo

Tässä artikkelissa luomme makron useiden alueiden liitolle tietylle taulukolle.

Raakatiedot koostuvat joistakin näytetiedoista, mukaan lukien nimi ja ikä. Meillä on kaksi aluetta, jotka sisältävät raakatietoja. Haluamme molempien alueiden liiton "Kohde" -arkkiin.

"Kopioi tietue" -painikkeen napsauttaminen yhdistää molempien alueiden tiedot ja muotoilun.

"Kopioi vain arvo" -painikkeen napsauttaminen yhdistää myös tiedot molemmilta alueilta, mutta kopioimatta solun muotoa.

Koodin selitys

Jokaiselle pienelle arkille ("pää"). Alue ("A9: B13, D16: E20").

Seuraava Smallrng

Edellä olevaa kutakin silmukkaa käytetään silmukoimaan määritetyille alueille.

Aseta DestRange = Sheets ("Destination"). Alue ("A" ja LastRow)

Yllä olevaa koodia käytetään luomaan alueobjekti viimeisestä solusta, johon haluamme kopioida tiedot.

Pienet kopiot DestRange

Yllä olevaa koodia käytetään tietojen kopioimiseen määritettyyn kohteeseen.

Seuraa koodia alla

 Vaihtoehto Explicit Sub CopyMultiArea () 'Ilmoittavat muuttujat Dim DestRange As Range Dim Smallrng As Range Dim LastRow as Long' Kiertäminen määritetyillä alueilla jokaiselle pienelle arkille ("Main"). Alue ("A9: B13, D16: E20"). Alueiden viimeisen solun rivinumeron löytäminen LastRow = Sheets ("Destination"). Alue ("A1"). SpecialCells (xlLastCell). Rivi + 1 'Solun valitseminen, johon tietueet on kopioitava If LastRow = 2 Sitten Set DestRange = Sheets ("Destination"). Alue ("A" & LastRow - 1) Muu Set DestRange = Sheets ("Destination"). Range ("A" & LastRow) End If 'Kopioidaan tietueet määritettyyn kohdealueeseen Smallrng.Copy DestRange Seuraava Smallrng End Sub Sub CopyMultiAreaValues ​​() 'Ilmoittavat muuttujat Dim DestRange kuten alue Dim Smallrng kuten alue Dim LastRow niin kauan' Silmukka määritettyjen alueiden välillä jokaiselle Smallrng In Sheets ("Main"). Alue ("A9: B13, D16: E20" ) .Alueet 'Viimeisen solun rivinumeron löytäminen LastRow = Sheets ("Destination"). Alue ("A1"). SpecialCells (xlLastCell). Rivi + 1 Smallrngin kanssa "Solun valitseminen, jossa uudelleen johdot on kopioitava If LastRow = 2 Sitten Set DestRange = Sheets ("Destination"). Range ("A" & LastRow - 1) .Resize (.Rows.Count, .Columns.Count) Else Set DestRange = Sheets (" Kohde "). Alue (" A "ja viimeinen rivi) .Resize (.Rows.Count, .Columns.Count) End If End End 'Arvojen määrittäminen lähteestä määränpäähän DestRange.Value = Smallrng.Value Seuraava Smallrng End Sub 

Jos pidit tästä blogista, jaa se ystävillesi Facebookissa. Voit myös seurata meitä Twitterissä ja Facebookissa.

Haluaisimme kuulla sinusta, kerro meille, kuinka voimme parantaa työtämme ja parantaa sitä sinulle. Kirjoita meille sähköpostitse

Tulet auttaa kehittämään sivuston jakaminen sivu ystävillesi

wave wave wave wave wave