Excel - Makro ryhmään sarakkeiden ja summa-arvojen mukaan

Microsoft Office -ohjelmisto sisältää Microsoft Excelin, joka on taulukkolaskentaohjelma, jossa on graafiset taulukot, laskelmat, makro-ohjelmointikieli, nimeltään VBA (Visual Basics for Applications) ja kääntöpöydät. Pivot-taulukkoa käytetään tietojen luetteloon; se tunnistaa ja tiivistää nämä tiedot tiettyjen tulosten saamiseksi. Makro edustaa luetteloa komennoista tai toimista, joiden avulla Excel Office -ohjelmistossa voidaan tehdä pitkiä tietoja tai toistuvia tehtäviä; tämä voidaan suorittaa aina, kun haluat suorittaa tehtävän. Se ottaa arvot, suorittaa vaaditun toiminnon ja palauttaa arvon vastaavasti. Jos haluat kirjoittaa makron ryhmään sarakkeiden ja summa-arvon mukaan, aloita sitten makro käyttämällä asianmukaisia ​​komentoja.

Ongelma

Minun täytyy kirjoittaa makro seuraavaan esimerkkiin:

 Tuote Määrä Pituus A 1 100 A 1 100 B 2 200 B 1 100 B 5 100 C 4 200 C 2 100 C 1 200 C 3 100 

Pohjimmiltaan haluan ryhmitellä sarakkeeseen A (eli kohtaan) ja sarakkeeseen C (eli pituuden) ja myös lisätä jokaisen pituuden muutoksen kokonaismäärän erään. Tässä tapauksessa uuden arkin tulos olisi seuraava:

 Tuote Määrä Pituus A 2 100 B 2 200 B 6 100 C 5 200 C 5 100 

Toivottavasti tämä on järkevää.

Voiko kukaan auttaa minua kirjoittamaan Excel-makron tähän?

Ratkaisu

Kokeile tätä

Oletus:

  • 1. Kun aloitat makron, arkki, josta data kopioidaan, on aktiivinen arkki
  • 2. Tyhjä solu sarakkeessa A osoittaa datan loppuun
  • 3. Haluat liittää sivulle 3 (oikea makro, jos näin ei ole)

 Sub konsolidateData () DimLRow As Long Long -näppäintä ItemRow1, ItemRow2 merkkijonoina Dim pikkusarja1, lengthRow2 merkkijonoina ("A: C"). Valitse valinta.Kopioi arkit ("Sheet3"). Valitse alue ("A1"). .Pane Cells.Select Selection.Sort _ Key1: = Range ("A2"), Order1: = xlAscending, _ Key2: = Range ("C2"), Order2: = xlDescending, _ Header: = xlYes, OrderCustom: = 1, _ MatchCase: = False, Orientation: = xlTopToBottom, _ DataOption1: = xlSortNormal lRow = 2 Tee vaikka (solut (lRow, 1) "") ItemRow1 = solut (lRow, "A") ItemRow2 = solut (lRow + 1, "A") lengthRow1 = solut (lRow, "C") lengthRow2 = solut (lRow + 1, "C") Jos ((ItemRow1 = ItemRow2) ja (lengthRow1 = lengthRow2)) Sitten solut (lRow, "B") = Solut (lRow, "B") + solut (lRow + 1, "B") Rivit (lRow + 1). Poista muut lRow = lRow + 1 loppu, jos silmukka päättyy 

Huomautus

Kiitos rizvisa1: stä tästä vinkistä foorumissa.

Edellinen Artikkeli Seuraava Artikkeli

Top Vinkkejä