Funktionieren Excel/VBA-Arrays auf Windows- und Mac-Computern unterschiedlich?

Funktionieren Excel/VBA-Arrays auf Windows- und Mac-Computern unterschiedlich?

Ich habe kürzlich für einen Arbeitskollegen ein Makro geschrieben, das die Daten aus einer Excel-Tabelle in ein ungefähr 75.000 x 58 großes 2D-Array kopiert, dann jede Zeile durchgeht und die relevanten Daten extrahiert.

Das Makro funktioniert auf meinem Windows-Computer gut und ist in weniger als 2 Sekunden abgeschlossen.

Das Makro funktioniert auch auf dem Mac meines Arbeitskollegen, dauert aber viel länger, zwischen 2000 und 4000 Sekunden.

Ich habe das Makro auf anderen Windows-Computern mit niedrigeren Spezifikationen als ihrem ausprobiert und das Makro ist in wenigen Sekunden abgeschlossen.

Gibt es einen Grund, warum der Mac über 1000-mal länger braucht?

Hier ist der Hauptteil des Makros, mechArray und activityArray sind nur kleine Arrays – mit jeweils 4 und 10 Elementen, outArray ist etwa 120 x 10 x 2 groß.

'Transfer Data
For i = 1 To UBound(inArray)
    If inArray(i, 1) >= d1 And inArray(i, 1) <= d2 _
        And UCase(inArray(i, 17)) = site Then

        x = DateDiff("d", d1, inArray(i, 1)) + 1

        y = isIn(mechArray, inArray(i, 48))
        z = isIn(activityArray, inArray(i, 49))

        If y > -1 And z > -1 Then
            outArray(x, z, 1) = outArray(x, z, 1) + inArray(i, 5)
            outArray(x, z, 2) = outArray(x, z, 2) & inArray(i, 8) & "|"   
        End If
    End If
Next i
Erase inArray

Und das ist die Funktion 'isIn',

Function isIn(arr As Variant, val As Variant) As Single
    Dim i

    For i = LBound(arr) To UBound(arr)
        If arr(i) = val Then
            isIn = i
            Exit Function
        End If
    Next i
    isIn = -1
End Function

verwandte Informationen