Excel - O macrocomandă pentru a grupa după coloane și valori sumă

Software-ul Microsoft Office cuprinde Microsoft Excel, care este o aplicație de calcul tabelar cu tabele grafice, calcule, un limbaj de programare macro, numit VBA (Basic Basics for Applications) și tabele pivot. Un tabel pivot este utilizat pentru a lista datele; recunoaște și rezumă aceste date pentru a obține rezultate specificate. O macrocomandă reprezintă o listă de comenzi sau acțiuni pentru a face mai repede mai multe date sau sarcini repetitive în Excel Office Software; acest lucru poate fi rulat ori de câte ori trebuie să efectuați sarcina. Evaluează valorile, efectuează operația necesară și returnează valoarea în consecință. Dacă doriți să scrieți o macrocomanda pentru a grupa după coloană și valoarea sumă, atunci trebuie doar să porniți macro-ul folosind comenzile relevante.

Problema

Trebuie să scriu o macrocomandă pentru următorul exemplu:

 Poziție Cantitate Lungime 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 

În principiu, vreau să grupez prin Coloana A (adică Postul) și Coloana C (adică lungimea) și doriți, de asemenea, să adăugați numărul total al fiecărei modificări în lungime, pentru un element. În acest caz, rezultatul pe noua foaie va fi următorul:

 Poziție Cantitate Lungime A 2 100 B 2 200 B 6 100 C 5 200 C 5 100 

Sper că acest lucru are sens.

Poate cineva să mă ajute să scriu o macrocomandă Excel pentru asta?

Soluţie

Incearca asta

Presupunere:

  • 1. Când porniți o macrocomandă, foaia activă este foaia de unde vor fi copiate datele
  • 2. O celulă goală din coloana A indică sfârșitul datelor
  • 3. Doriți să lipiți pe foaia 3 (corect în macro, dacă nu este cazul)

 ("A: C") Selectați Selection.Copy Sheets ("Sheet3") Selectați Range ("A1") Selectați ActiveSheet .Paste Cells.Select Selection.Sort _ Key1: = Interval ("A2"), Order1: = xlAscending, _ Key2: = Interval ("C2"), Order2: = xlDescending, Header: = xlYes, OrderCustom = = 1, _ MatchCase: = False, Orientation: = xlTopToBottom, _DataOption1: = xlSortNormal lRow = 2 În timp ce (Celule (lRow, 1) "") ItemRow1 = Celule (lRow, "A") ItemRow2 = "A") lengthRow1 = Celule (lRow, "C") lengthRow2 = Celule (lRow + 1, "C") = Celule (lRow, "B") + Celule (lRow + 1, "B") Rows (lRow + 1) .Delete lRow = lRow + 

Notă

Datorită lui rizvisa1 pentru acest sfat pe forum.

Articolul Precedent Articolul Următor

Cele Mai Importante Sfaturi