Excel-VBA: .Sortiment & Cells(Zeile.Graf xlup
Ich versuche zu verstehen, die folgende Zeile:
.Range("A1:A" & .Cells(.Rows.Count, "A").End(xlUp).Row).ClearContents
Kann mir jemand sagen was .Range("A1:A" & bedeutet?
Aus meiner Forschung, so weit ich Folgendes gefunden:
- Zellen bezieht sich auf die Zellen
- .Zeilen.Graf ist eine Funktion, liefert die Anzahl der Zeilen in der Tabelle (=65536)
- , "A" bezieht sich auf die Spalte, die Sie durchsuchen möchten (hier A)
- .Ende weist EXCEL an, wo Sie anfangen
- xlUp die Richtung, welche EXCEL suchen soll
- .Zeile die erste Zelle von unten, die nicht leer
- .ClearContents löscht alle Werte
Kann mir jemand sagen ob dies corrrect, und insgesamt zu erklären, was die gesamte Linie wird versucht, zu tun?
Vorausgesetzt, es kann die Werte später Hinzugefügt-Spalte Ein, aber ich wollte nur löschen Sie den Inhalt des 6-Zellen (A50:A55), wie würde ich dies ändern?
- Wenn Sie möchten, löschen Sie diese 6 Zellen,
.Range("A50:A55").ClearContents
wird es tun. Der code, den Sie bieten, klärt der Anteil von Spalte A. kann Es auch neu geschrieben werden sehr viel effizienter.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bruch der Linie nach unten (Sie hatte die meisten it-Recht):
Das erste, was auffällt, ist die
.
am Anfang viele der Eigenschaften/Methoden. Das sagt uns, dass der code muss innerhalb einerWith
block, wahrscheinlich so etwas wieWith Worksheets("Sheet1")
oder ein äquivalent. Also alles beginnend mit einem.
ist nur ein shortcut zu sagenWorksheets("Sheet1").
..Rows
gibt alleRows
im Arbeitsblatt, und.Rows.Count
ist daher die zählen, wie viele Zeilen es sind. In älteren Versionen von Excel war es zu 65.536, und in neueren Versionen ist es 1,048,576..Cells(.Rows.Count, "A")
gibt ein Objekt zurück, das bezieht sich auf die Letzte Zelle in Spalte A, z.B. die Zelle in $A$65536.End(xlUp)
sagt gehen aus dieser Zelle finden und die vorherigen nicht leeren Zelle in eine Richtung nach oben. (Wenn eine Zelle $A$65536 nicht leer war, würde es etwas anders machen, aber ich werde übertünchen, dass.).Row
dann findet die Zeile, die Anzahl der nicht leeren Zelle. Für die Zwecke dieser Erklärung, lassen Sie uns so tun, dass war die Zelle $A$5201 also.Cells(.Rows.Count, "A").End(xlUp).Row
zurück5201
"A1:A" & 5201
wird verketten"A1:A"
mit"5201"
(implizite Typ-Umwandlung von Zahl in string) generieren string"A1:A5201"
Range("A1:A5201").ClearContents
löscht den Inhalt der ZellenA1:A5201