Ihr Code ist unvollständig oder bedeutungslos. Sie lesen den Wert eines Arrays 144,508,500 Millionen Mal, aber Sie verwerfen das Ergebnis 144,508,499 mal.
Wenn Sie nur über das letzte Ergebnis kümmern, werde ich das für Sie optimieren:
Dim X As Integer
d = Ary(17000, X)
Sagen Sie uns, was Sie wirklich tun wollen, und wir bieten eine bessere Antwort.
Es gibt ein paar allgemeine Dinge, die Sie tun können:
keine Variant/Date Array Verwenden Sie - Varianten mehr Speicher, und wenn sie aus Excel eingelesen sind, gibt es einige Kopf das Datumsformat in die Erhaltung von der Region. Mit einem Date-Array wäre es besser, und ich vermute, dass es mit einer Reihe von Doubles noch besser klappt.
Angenommen, Sie möchten eine Art von Datumsvergleich durchführen, lesen Sie mehrere Zeilen mehrmals hintereinander. Sehen Sie sich das Dictionary-Objekt genauer an, und Sie können die Anzahl der Lesevorgänge wahrscheinlich drastisch reduzieren.
Tun * alles * 145 Millionen Mal braucht Zeit, auch für einen Computer. Der einzige Weg, um es schneller zu machen, ist einen Weg zu finden, es nicht so oft zu lesen. – Kaz
Wenn Sie den * gleichen * Wert bis zu 17.000 Mal lesen, zeigt dies an, dass Sie nicht die richtige Datenstruktur verwenden. – ThunderFrame
@NOYB Wie die Frage gestellt wird, ist ein [X-Y-Problem] (https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). Bitte geben Sie weitere Einzelheiten darüber an, was Sie erreichen möchten. – ThunderFrame