Excel - Makro ke kumpulan mengikut nilai lajur & jumlah

Perisian Microsoft Office terdiri daripada Microsoft Excel yang merupakan aplikasi spreadsheet yang memaparkan jadual grafik, pengiraan, bahasa pengaturcaraan makro, dipanggil VBA (Asas Visual untuk Aplikasi) dan jadual pangsi. Jadual pangsi digunakan untuk menyenaraikan data; ia mengiktiraf dan meringkaskan data tersebut untuk memperoleh keputusan tertentu. Makro mewakili senarai arahan atau tindakan untuk membuat data yang panjang atau tugas berulang dalam Perisian Pejabat Excel dengan lebih cepat; ini boleh dijalankan apabila anda perlu melaksanakan tugas. Ia mengambil nilai-nilai, melaksanakan operasi yang diperlukan dan mengembalikan nilai yang sesuai. Jika anda ingin menulis makro ke kumpulan mengikut kolum dan nilai jumlah maka mulakan makro dengan menggunakan perintah yang berkaitan.

Isu

Saya perlu menulis makro untuk contoh berikut:

 Item Qty Panjang 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 

Pada dasarnya saya ingin dikelompokkan oleh Column A (ie Item) dan Column C (iaitu panjang) dan juga ingin menambah jumlah setiap perubahan dalam panjang, untuk item. Dalam kes ini, hasil pada helaian baru akan seperti di bawah:

 Item Qty Panjang A 2 100 B 2 200 B 6 100 C 5 200 C 5 100 

Harap ini masuk akal.

Bolehkah sesiapa membantu saya menulis makro Excel untuk ini?

Penyelesaian

Cuba ini

Asumsi:

  • 1. Apabila anda memulakan makro, kunci dari mana data akan disalin dari, adalah kunci aktif
  • 2. Suatu sel kosong di lajur A menunjukkan akhir data
  • 3. Anda ingin menampal ke lembar 3 (betul dalam makro jika tidak demikian)

 Sub consolidateData () DimLRow As Long Dim ItemRow1, ItemRow2 As String Dim lengthRow1, lengthRow2 As Column String ("A: C") Select Selection.Copy Sheets ("Sheet3") Select Range ("A1" Sel. Selesaikan Selection.Sort _ Key1: = Range ("A2"), Order1: = xlAscending, _ Key2: = Range ("C2"), Order2: = xlDescending, _ Header: = xlYes, OrderCustom: = 1, _ MatchCase: = False, Orientasi: = xlTopToBottom, _ DataOption1: = xlSortNormal lRow = 2 Do While (Sel (lRow, 1) "") ItemRow1 = Sel (lRow, Selang (lRow, "C") panjangRow2 = Sel (lRow + 1, "C") Jika ((ItemRow1 = ItemRow2) Dan (lengthRow1 = lengthRow2) Sel (lRow, "B") + Sel (lRow + 1, "B") Baris (lRow + 1) .Delefon Else lRow = lRow + 1 End Jika Loop End Sub 

Catatan

Terima kasih kepada rizvisa1 untuk tip ini di forum.

Artikel Sebelumnya Artikel Seterusnya

Tip-Tip Utama