1) Verwenden den die Einheit Für .... Schleife durch jede Zelle in einer Schleife in einem Bereich konstruieren. 2) Wenn Sie "Zahlen" von 123 bis 123 in eine richtige Zahl und nicht in Text konvertieren möchten, verwenden Sie den Befehl "Val", um eine Zeichenfolge in eine Zahl zu konvertieren. ist jedoch zu beachten, dass, wenn Sie, wenn Sie Zelle mit so etwas wie „ABC-“ haben, wird diese -ABC werden, die VBA dann in eine Zahl zu konvertieren versucht ... und produziert Null als Ergebnis
Sub MoveMinus()
Dim c As Range
For Each c In Intersect(Selection, Selection.Worksheet.UsedRange)
If (Right(c, 1) = "-") Then
c = Val("-" & Left(c, Len(c) - 1)) 'Val to make the result numeric
End If
Next
End Sub
Großen. Danke, @HedgePig. Keine Sorge, alle Zellen sind Zahlen, d. H. 123 -... Wie würde ich dem Makro einen Schritt davor hinzufügen, um auch alle zu finden, (Komma) und sie durch nichts ersetzen (löschen)? – teaspoon
Ich bin froh, dass es geholfen hat. Um Kommas zu entfernen, verwenden Sie den Befehl Ersetzen, z. c = Ersetze (c, ",", "") vor der If-Bedingung. Beachten Sie, dass dies ein Komma im Textfeld ersetzt, aber das Komma NICHT durch Zahlen ersetzt, die mit Kommas formatiert sind - da dies ein Formatierungsproblem ist – HedgePig