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


0

Ich habe ein Makro für einen Arbeitskollegen geschrieben, der kürzlich die Daten aus einer Excel-Tabelle in ein 2D-Array mit einer Größe von ca. 75000 x 58 kopiert, dann jede Zeile durchläuft und relevante Daten extrahiert.

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

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

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

Gibt es einen Grund, warum der Mac 1000x länger braucht?

Hier ist der Hauptteil des Makros, mechArray und activityArray sind nur kleine Arrays - mit jeweils 4 und 10 Elementen ist outArray 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

Können Sie die wesentlichen Teile des Makros teilen?
Joffan

Es macht keinen Sinn, diese Frage zu stellen, wenn Sie dies nur auf einem einzigen MAC getestet haben. Versuchen Sie, es auf mindestens einigen anderen MACs zu testen, bevor Sie sich dieser Schlussfolgerung annähern. Und ich bin mir sicher, wenn Sie dies in einem MAC-Forum gefragt haben, würde jemand sagen, dass er es ausführt und es zwei Sekunden dauert.
Barlop

Aktualisiert es jetzt, Joffan
Aaron

Ich habe auf jemanden gehofft, der sich sowohl mit MAC- als auch mit Windows-Versionen von Excel auskennt. Gibt es hier keine MAC-Benutzer? Mein Kollege ist der einzige MAC-Benutzer in unserem Büro, der Rest sind alle Fenster, so dass ich es nicht auf mehreren Geräten testen kann. Wenn die Antwort auf meine Frage Ja wäre, würden MACs oder die MAC-Version von Excel Daten anders behandeln, und ich würde versuchen, mein Makro zu ändern, und würde wissen, was ich in Zukunft schreibe. Wenn die Antwort "Nein" lautet, sollte der Vorgang in 2 Sekunden abgeschlossen sein. Dann kann ich ihr sagen, dass sie ihren Laptop zur Überprüfung mitnehmen muss.
Aaron
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.