Ich führe einen Code, der Daten von PI mit bedingten Formel zieht. Wenn die Werte gezogen werden, weist sie die Formel ganze Spalte, aber nur wenige von ihnen tatsächlich Werte haben:VBA: Ersetzen von Leertasten durch Leerzeichen?
Die Säule etwa 300.000 Zeilen hat, aber ich möchte nur die Schleife laufen, wenn ich Istwerten haben (4 mal statt 300.000 in diesem Fall).
Gibt es irgendwelche Vorschläge, die Schleife 300.000 Mal zu vermeiden?
ich versucht habe, mit der Funktion ersetzen durch alle Räume mit leeren ersetzen und dann die Anzahl der nicht leeren Zellen zählen mit COUNTA
:
'Replacing all spaces in a column by blanks
Workseets("Sheet6").Range("D:D") = Replace(Worksheets("Sheet6").Range("D:D")," ","")
'counting non-blank cells
n = WorksheetFunction.CountA(Worksheets("Sheet6").Range("D:D"))
'running code only 4 times
for I = 1 to n.....
Aber ich bin immer Typenkonfliktfehler für die Funktion ersetzen. Ich habe noch nichts für FOR Loop
geschrieben. Derzeit versucht nur die REPLACE
Funktion korrekt zu verwenden
'Dim n As Long' und' Dim I as Long', 300,000 well überschreitet die Grenze des Datentyps ganzzahl. Sehen Sie sich auch an, was Sie in der Schleife tun. –
Wenn eine Schleife notwendig ist (und es nicht sein kann), können Sie die 'Do While' Schleife anstelle der' For' Schleife verwenden, mit Kriterien zum Beenden, wenn der Zellenwert leer ist. –
Im Idealfall, statt hartcodierte 'Workseets (" Sheet6 "). Range (" D: D ")' Sie definieren eine richtige Range-Variable, die nur die Zeilen/Daten darstellt, die Sie verarbeiten möchten. –