vba-Schleife durch Spalte und wenn bestimmten Wert erhöhen
Ich habe eine Spalte C gefüllt mit leeren Zellen oder Zellen mit Wert "OK". Ich brauche, dass jede Zelle, die text enthält "OK" wird die änderung sein, zum inkrementierten Wert 1,2,3 usw. insgesamt 2642 Zellen
C
- 1 [empty]
- 2 [empty]
- 3 [OK]
- 4 [empty]
- 5 [OK]
- 6 [empty]
Müssen so Aussehen:
C
- 1 [empty]
- 2 [empty]
- 3 [1]
- 4 [empty]
- 5 [2]
- 6 [empty]
Im Prinzip brauche ich autoincrement aber beim filtern von Daten autoincrement funktioniert nicht
Code, den ich verwenden autoincrements alle Werte nicht anzuzeigen, Wert auf die Zelle, die enthalten Wort "OK" wie folgt:
C
- 1 [1]
- 2 [2]
- 3 [empty]
- 4 [4]
- 5 [empty]
- 6 [6]
Code:
Sub Macro1()
mynumber = 1
Dim r As Range, cell As Range
Set r = Range(Range("C1"), Range("C2642").End(xlDown))
For Each cell In r
If cell.Value = OK Then cell.Value = mynumber
mynumber = mynumber + 1
Next
End Sub
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dein code ist in der Nähe aber das problem, das Sie haben ist, dass Sie Ihr Handy Wert ist die überprüfung
OK
denken, es ist eine variable. Um dies zu vermeiden, das erste, was Sie tun möchten, ist setzen SieOption Explicit
an der Spitze jedes Moduls zu sagen, wenn Sie noch nicht deklarierten Variablen.Alles was Sie jetzt tun müssen ist, machen Sie 'OK', um eine Zeichenfolge wie
"OK"
. Sie müssen auch erhöhen Ihre Zahl innerhalb derIf
Aussage, ansonsten werde es halten Inkrementieren, auch wenn Sie das nicht wollen.Edit: du kannst auch deine Reichweite ein wenig mehr einfach nur um die Festlegung der Zellen in der
Range
Methode wie in diesem code. Es ist nicht so flexibel wie mitEnd
aber wenn Sie einen festen Bereich wird den trick tun.Versuchen, diesen code:
Können Sie dies tun, ohne ein makro:
OK
mit=MAX(R1C1:R[-1]C)+1
Alternativ können Sie dies auch tun, ohne R1C1-Stil mit einem Autofilter:
OK
OK
s=MAX($A$1:$A2)+1
Sie die Eingabe mit Strg-Enter. Sie brauchen, um leicht anpassen, die Formel - ersetzen$A$1
mit der ersten Zeile Ihrer Daten starten (oder in der Kopfzeile) - und$A2
mit die Zelle über Ihre aktive Zelle - auch wenn es versteckt!