Am Sat, 8 Oct 2022 03:09:43 +0200
schrieb Carlos Naplos <
ca...@onlinehome.de>:
> Hi
>
> Range("B1:B84").Value liefert ein zweidimensionales Array
> Variant(1 to 84, 1 to 1)
Danke für die Bestätigung meines Verdachtes, den ich gestern nach dem
erfolgreichen Test hatte.
> Die Logik ist wohl, dass du 84 Zeilen und eine Spalte hast.
Korrekt. Die vollständige Datei hat sogar 12716 Zeilen und zwei
Spalten; es handelt sich dabei um einen Export aus unserer WaWi: die
Artikelnummern (Spalte 1) und den Lagerbestand (Spalte 2) aller unserer
Artikel.
> Eine andere Frage ist, was dir das Array bringt.
siehe unten unter dem Code
> Option Explicit
>
> Sub AlleNegativenNull()
>
> Dim rgZelle As Range
>
> For Each rgZelle In Range("B1:B84")
> If rgZelle < 0 Then rgZelle = 0
> Next rgZelle
>
> End Sub
Diese FOR-Schleife, mit der die zellen direkt durchlaufen und
manipuliert werden braucht länger, als Einlesen in ein Array,
durchlaufen desselben und Rückschreiben des Arrays in die Range.
Habe ich schon vor ein paar Jahren mehrfach getestet, weil ich es
selbst kaum glauben konnte, aber John Walkenbach hat hier recht.
** Fullquote entfernt ***