Ich schreibe ein Skript, das, wenn eine Zelle in Spalte M von Sheet2 zu "Special" geändert wird, die Zeilennummer dieser Zelle in Spalte B von Sheet12 kopiert wird. Wenn die Zeilennummer die größte in der Spalte ist, wird sie am Ende hinzugefügt. Wenn nicht, wird eine Zeile aus einer Vorlagenzeile kopiert und (zusammen mit der Zeilennummer) eingefügt, so dass alle Zahlen in Spalte B sequenziell sind.Suchen nach leeren Zellen in einer Schleife
Der Code zum Einfügen/Kopieren von Mid-Sequence-Nummern funktioniert gut, aber es funktioniert nicht, um die größte Zahl am Ende hinzuzufügen. Ich bekomme keinen Fehler; es funktioniert einfach nicht. Hier ist der Code (in Tabelle2):
If Target.column = 13 Then
Dim cell As Integer
Dim l As Long
cell = ActiveCell.Row
If ActiveCell.Value = "Special" Then
With Sheet12
For l = .Cells(rows.count, "B").End(xlUp).Row To 3 Step -1
If .Cells(l, 2).Value = vbNullString And .Cells(l - 1, 2).Value < cell Then
Sheet12.Cells(l, 2).Value = cell
ElseIf .Cells(l, 2).Value > cell And .Cells(l - 1, 2).Value < cell Then
Sheet12.Cells(l, 2).EntireRow.Insert shift:=xlDown
Sheet12.Range("A3").EntireRow.Copy Sheet12.Cells(l, 2).EntireRow
Sheet12.Cells(l, 2).Value = cell
End If
Next
End With
End If
End If
Der Teil des Codes, der geändert werden muss, ist If .Cells(l, 2).Value = vbNullString And .Cells(l - 1, 2).Value < cell Then
. Ich habe verschiedene Möglichkeiten ausprobiert, nach einer leeren Zelle zu suchen (d. H. Isempty(), "" usw. zu verwenden) und die Zellen mit Blattnamen unterschiedlich zu referenzieren. Irgendwelche Ideen? Vielen Dank im Voraus für Ihre Hilfe!
Warum Schleife für Zelle? 'GoTo> Spezielle Zellen' kann in VBA verwendet werden: http://www.ozgrid.com/VBA/special-cells.htm –
Ich denke, ich muss Zelle für Zelle durchlaufen, weil es zuerst überprüft werden muss, um zu sehen, ob Die Nummer befindet sich zwischen vorhandenen Zahlen (um ein Skript zum Kopieren/Einfügen auszuführen) oder dem größten (am Ende einfach hinzuzufügen). – Kim
Es ist nicht notwendig, alles auf einmal zu tun, Sie versuchen, den Platz zu finden, wo Sie den neuen Wert in Spalte B einfügen sollten, eine einfachere Methode ist, es am Ende der Spalte B hinzuzufügen und dann nach Wunsch zu sortieren – Ibo