ich versuche gerade alles umzuschreiben und die ganzen Copy.Funktionen herauszunehmen. Soweit so gut. Nun stoße ich auf ein Problem:
Range("A1:D50000").Value = Range("E1:H50000").Valuefunktioniert und Excel kopiert alle Zellen mit individuellen Werten in die anderen Zellen in einem akzeptablen Speed im Gegensatz zur Standard Copy-Paste-Value Funktion wo man ja den Zwischenspeicher von Windows nutzen muss.
Warum funktioniert das nicht mit einer einfachen Division einer Konstanten?:
Range("A1:D50000").Value = Range("E1:H50000").Value / 2
Eine Lösung die ich gefunden habe, aber zu langsam ist (da Excel jede Einzelne Zelle abfragt), ist diese (Verwendung von for oder Schleife):
Range("A1:D50000").Select
'Dim zelle As Range
'For Each zelle In Selection
'zelle.Value = zelle.Value / 2
'Next zelle
Das dauert fast 13 Sekunden bei mir. Mit der Copy und Special-Paste funktion (die ich nicht nutzen kann) dauert es 0.1 Sekunde (!)
Kann man das irgendwie über ein Array Lösen? Excel hat einfach das Problem, dass wenn man Versuche unternimmt das ohne Schleifen/Individualabfrage der Zellen zu lösen, alle Zellen mit dem gleichen Inhalt füllt und nicht individuell per Zelle vorgeht. In dieser folgenden, relativ schnellen Funktion funktioniert das komischerweise (also schnell und individuell jede Zelle kopiert) -allerdings ohne Rechenoperationen (z.B. durch 2 Teilen) oder ich bin einfach nur unwissend und man kann das hier irgendwie einfügen (also durch 2 zu teilen?):
Range("A1:D50000").Value = Range("E1:H50000").Value
Habt Ihr noch andere Ansätze um mehrere Zellen durch 2 zu dividieren?
Vielen Dank!