„Excel“ - makrokomandas, skirtas surinkti kelis lapus

Problema

Turiu 11 lapų Excel. 10 lapų reikia ištraukti informaciją iš lapo1.

Tai skirta virėjai maitinimo įstaigoje.

A skiltyje turiu raktinį žodį, kad būtų galima atskirti kiekvieną informacijos eilutę.

Ką man reikia ...

  • 2 ir 3 lapai, norėdami ištraukti visą eilutę iš 1 lapo, jei žodis A stulpelyje yra „Karštas“.
  • 4 ir 5 lapai, kad ištrauktų visą eilutę iš 1 lapo, jei A stulpelyje esantis žodis yra „šaltas“.
  • 6 lapas, jei norite ištraukti visą eilutę iš 1 lapo, jei žodis A stulpelyje yra „Bulk“.
  • 8 ir 9 lapai, norėdami ištraukti visą eilutę iš 1 lapo, jei A stulpelyje yra žodis „Konditerija“.
  • 10 lapas, jei norite ištraukti visą eilutę iš 1 lapo, jei žodis A stulpelyje yra „Pres“.

Kiti lapai jau įtraukti.

Sukūriau makrokomandą, kad surūšiuotumėte lapus pagal tris stulpelius. Būtų malonu, jei ši makro sistema automatiškai rodytų informaciją, kuri buvo pridėta prie lapo. Ne tam tikroje eilutėje, bet bet kurioje lapo vietoje, kad informacija būtų tvarkinga.

Sprendimas

Išbandykite šį makrokomandą:

 Pasirinkimas Aiškus Privatus Sub Worksheet_Change (ByVal Target As Range) Dim nxtRow As Integer 'Nustatykite, ar pasikeitimas įvyko H stulpelyje (8) Jei Target.Column = 8 Tada' Jei taip, nustatykite, jei elementas = Hot Jei Target.Value = "H" Tada „Jei taip, suraskite kitą tuščią eilutę 2 lape nxtRow = Lapai (2) .Range („ G “ir eilutės.Kaina) .Be (xlUp).„ + + “Kopija pakeista eilutė ir įklijuokite į 2 lapą„ Target.EntireRow “ .Copy _ Paskirties vieta: = lapai (2) .Range („A“ ir „nxtRow“) Jei taip, suraskite kitą tuščią eilutę 3 lape nxtRow = Lapai (3) .Range („G“ ir eilutės.Kaina). xlUp) .Row + 1 'Kopijuoti pakeista eilutė ir įklijuoti į 3 lapą Target.EntireRow.Copy _ Paskirties vieta: = Lakštai (3). Pakeisti („A“ & nxtRow) pabaiga Jei pabaiga Jei „Nustatykite, ar pasikeitimas buvo H stulpelyje ( 8) Jei Target.Column = 8 Tada „Jei taip, nustatykite, ar ląstelė = šalta Jei Target.Value =“ C „Tada“ Jei taip, raskite kitą tuščią eilutę 4 lape nxtRow = Lapai (4) .Range („G“ & Rows.Count) .End (xlUp) .Row + 1 'Kopijuoti pakeista eilutė ir įklijuoti į 4 lapą Target.EntireRow.Copy _ Paskirties vieta: = Lapai (4) .Ring ("A" & nxtRow) "Jei taip, raskite kita tuščia eilutė 5 lape nxtRow = Lakštai (5) .Range ("G" ir eilutės.Kaina) .Pasirinkta (xlUp) .Užrašas + 1 'Kopijuoti pakeista eilutė ir įklijuoti į 3 lapą Target.EntireRow.Copy _ Paskirties vieta: = Lakštai (5) .Range („A“ & nxtRow) pabaiga Jei pabaiga Jei „Nustatykite, ar pasikeitimas įvyko H stulpelyje (8) Jei Target.Column = 8 Tada„ Jei taip, nustatykite, jei ląstelė = pristatymas Jei Target.Value = “ P "Tada" Jei Taip, suraskite kitą tuščią eilutę 8 lape nxtRow = Lakštai (8) .Range ("G" ir eilutės.Kaina) .Bendas (xlUp). Perkelti + 1 "Kopijuoti pakeista eilutė ir įklijuoti 8 lape Tikslinė .EntireRow.Copy _ Paskirties vieta: = lapai (8) .Pakeisti („A“ & nxtRow) pabaiga Jei pabaiga Jei „Nustatykite, ar pasikeitimas įvyko H stulpelyje (8) Jei Target.Column = 8 Tada“ Jei taip, nustatykite, ar elementas = Konditerija Jei Target.Value = "PY" Tada "Jei Taip, suraskite kitą tuščią eilutę 10 lape nxtRow = Lakštai (10) .Range (" G "ir eilutės.Suma) .End (xlUp). pasikeitė eilutė ir įklijuokite 10 lapą Target.EntireRow.Copy _ Paskirties vieta: = Lakštai (10) .Range („A“ & nxtRow) Jei taip, suraskite kitą tuščią eilutę 12 lape nxtRow = Lapai (11) .Range („ G "ir eilutės.Skaičiuoti (xlUp) .Row + 1 'Kopijuoti pakeistą eilutę ir įklijuoti į 12 lapą Target.EntireRow.Copy _ Paskirties vieta: = lapai (11) .Pakeisti ("A" & nxtRow) pabaiga Jei pabaiga Jei "Nustatykite, ar pasikeitimas buvo stulpelyje H (8) Jei Target.Column = 8 Tada „Jei taip, nustatykite, jei ląstelė = masė, jei Target.Value =" B "Tada" Jei taip, raskite kitą tuščią eilutę 6 lape nxtRow = Lapai (6) .Range ("G „& Rows.Count“ .End (xlUp) .Row + 1 „Kopijuoti pakeistą eilutę ir įklijuoti į 6 lapą Target.EntireRow.Copy _ Paskirties vieta: = lapai (6) .Pakeisti („ A “& nxtRow) pabaiga, jei baigiasi Pabaiga 

Dėkojame Jlee1978 už šį patarimą.

Ankstesnis Straipsnis Kitas Straipsnis

Geriausi Patarimai