Heim  >  Artikel  >  Software-Tutorial  >  Excel-VBA-Code: Untergeordnete Zeilen mit übergeordneten Zeilen zusammenführen. Das Ergebnis ist übergeordnete Zeile 1 und ihre untergeordneten Zeilen

Excel-VBA-Code: Untergeordnete Zeilen mit übergeordneten Zeilen zusammenführen. Das Ergebnis ist übergeordnete Zeile 1 und ihre untergeordneten Zeilen

WBOY
WBOYnach vorne
2024-01-20 08:15:05999Durchsuche

一段excel vba代码用于将子表行合并到父表结果:父行1若干

Ein Stück Excel-VBA-Code wird verwendet, um die Zeilen der untergeordneten Tabelle mit der übergeordneten Tabelle zusammenzuführen. Das Ergebnis ist: mehrere übergeordnete Zeilen 1

Angenommen, Ihre erste Zeile ist die Titelzeile, beginnen Sie mit der zweiten Zeile

Sub merge()

Endcol1 = Sheet1.[iv1].End(xlToLeft).Column

endrow1 = Sheet1.Range("B65536").End(xlUp).Row

endcol2 = Sheet2.[iv1].End(xlToLeft).Column

endrow2 = Sheet2.Range("B65536").End(xlUp).Row

A als Bereich dimmen

BiaoYiID als Bereich dimmen

BiaoErID als Bereich dimmen

MyRange1 als Bereich dimmen

BiaoErH als Bereich dimmen

Dim leiji As Long

Sheet2.Activate

Setze BiaoErID = Sheet2.Range(Cells(2, 2), Cells(endrow2, 2))

Für i = 2 To endrow1

sxh = i + lieji

lieji1 = 0

biaoerneirong = Sheet1.Range("B"& sxh).Text

Setze A = BiaoErID.Find(biaoerneirong, after:=BiaoErID.Cells(BiaoErID.Cells.Count), lookat:=xlWhole)

Wenn nicht A nichts ist, dann

biaoertopaddress = A.Address

Tu

sxh1 = sxh + lieji1

BIAORADDRESS = A.Address(RowAbsolute:=False, ColumnAbsolute:=False)

biaoyiaddress = Sheet1.Range("B" & sxh1).Address(RowAbsolute:=False, ColumnAbsolute:=False)

Blatt1.Auswählen

Sheet1.Range(biaoyiaddress).Offset(1).Activate

ActiveCell.EntireRow.Insert

lieji = lieji + 1

lieji1 = lieji1 + 1

Für ii = 0 bis endcol2

ActiveCell.Offset(0, ii) = Sheet2.Range(BIAOERADDRESS).Offset(0, ii)

Weiter

Setze A = BiaoErID.FindNext(A)

Loop While Not A Is Nothing And A.Address biaoertopaddress

Ende wenn

Weiter

End Sub

So schreiben Sie einen VBA-Code, um die Anzahl der Arbeitsblätter in einer Arbeitsmappe zu zählen

Statistik der Unterarbeitsblattnummer ()

If Sheets(1).Name "Statistik der Anzahl der Arbeitsblätter" Then

yn = MsgBox („[Arbeitsblatt-Mengenstatistik] Arbeitsblatt existiert nicht, [Arbeitsblatt-Mengenstatistik] erstellen?“, vbYesNo, „[Arbeitsblatt-Mengenstatistik]-Arbeitsblatt erstellen“)

Wenn yn = vbJa, dann

Sheets.Add(Sheets(1)).Name = „Statistik der Blattanzahl“

Ende

Ende wenn

Ende wenn

Blätter („Statistik zur Anzahl der Arbeitsblätter“).Wählen

Bereich("A1").Auswählen

Cells(1, 1).Value = „Die Anzahl der Arbeitsblätter beträgt“

Cells(1, 2).Value = Sheets.Count

End Sub

Ein Arbeitsblatt mit dem Namen „Arbeitsblattstatistik“ wird erstellt und die Anzahl der Arbeitsblätter wird in der ersten Zeile angezeigt

Bitte schreiben Sie Kommentare für den Excel-VBA-Code unten. Bitte machen Sie die Kommentare so detailliert wie möglich Public m& 'Definieren Sie die öffentliche Variable m

Sub lqxs()

Dim Arr, i&, Brr(1 To 27, 1 To 23), rq, nl 'Definieren Sie die oben genannten Variablen, Brr ist ein zweidimensionales Array mit 27 Zeilen und 23 Spalten

Blatt1.Aktiviere „Blatt1 zum aktuell aktiven Blatt machen

“.

[c5:z32].ClearContents 'Löschen Sie die Daten in den Zellen C5 bis Z32

Myr = Sheet2.[a65536].End(xlUp).row 'Weisen Sie der Myr-Variablen die Anzahl der Zeilen im Bereich mit Daten in Spalte A von Sheet2 zu

Arr = Sheet2.Range("a7:t" & Myr) 'Nennen Sie den Bereich von Spalte A7 bis Spalte T und Zeile Myr als Arr

For i = 1 To UBound(Arr) 'Loop

rq = DateSerial(Left(Arr(i, 7), 4), Mid(Arr(i, 7), 5, 2), Right(Arr(i, 7), 2)) 'Platziere Spalte G in Sheet2 The Die Daten werden in das Datumsformat geändert, z. B.: 12.12.2013

nl = DateDiff("yyyy", rq, Now) 'Bestimmen Sie, ob das Jahr des Datendatums in Spalte G in Sheet2 mit diesem Jahr übereinstimmt. Wenn es dasselbe ist, wird 0 zurückgegeben, wenn nicht Das Gleiche gilt, es wird 1

zurückgegeben

Call jd(Arr(i, 13)) 'Funktion jd() aufrufen

Brr(1, nl + 1) = Brr(1, nl + 1) + 1 'Addiere eins zum Wert des Arrays Brr(1, nl + 1)

Brr(m, nl + 1) = Brr(m, nl + 1) + 1 'Addiere eins zum Wert des Arrays Brr(1, nl + 1)

Weiter

[d5].Resize(27, 23) = Brr 'Zunächst weisen Sie der Zelle D5 den Wert des Arrays zu und gehen dann zur 26. Zeile und 22. Spalte rechts

[c5].Formula = "=sum(rc[1]:rc[23])" 'Formel zu Zelle C5 hinzufügen, C5=D5+E5+F5++AB5

[c5].AutoFill [c5].Resize(27, 1) 'Formatfüllung Füllen Sie das Format von C5 in Zelle C31

[d6].Formula = "=sum(r[1]c:r[4]c)" 'Formel zu Zelle D6 hinzufügen, D6=D7+D8+D9+D10

[d6].AutoFill [d6].Resize(1, 23) 'Formatfüllung, fülle das Format von D6 in Zelle AB31

End Sub

Das obige ist der detaillierte Inhalt vonExcel-VBA-Code: Untergeordnete Zeilen mit übergeordneten Zeilen zusammenführen. Das Ergebnis ist übergeordnete Zeile 1 und ihre untergeordneten Zeilen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:docexcel.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen