Excel-Fehler 1004 „Eigenschaft der WorksheetFunction-Klasse kann nicht abgerufen werden“ wird inkonsistent angezeigt

Ich habe eine VBA-Funktion in einer Tabelle, die auf eine andere Tabelle angewendet wird, die in einem früheren Stadium meines Makros geöffnet wurde. Das Makro hat früher einwandfrei funktioniert, hat aber vor kurzem begonnen, a zu verursachen1004 Error ("RoundDown-Eigenschaft der WorksheetFunction-Klasse kann nicht abgerufen werden") wenn es läuft.

Ich glaube, ich verstehe, was der Fehler verursacht (ein Problem beim Ausführen von RoundDown), aber ich kann nicht erkennen, warum er in meinem Makro ausgelöst wird, und der seltsame Teil ist der, wenn ich in den Debug-Modus gehe und den Code in der VBE durchlaufe Fehler wiederholt sich nicht (obwohl sich offensichtlich nichts ändert).

Hat jemand eine ähnliche Erfahrung mit dieser Art von Fehlern, die inkonsistent auftreten, und weiß, was ich tun kann, um sie zu beheben?

Ich bin einigermaßen VBA / Excel-versiert, aber für Vorschläge zu weiteren Schritten zur Diagnose wäre ich dankbar. Ich frage mich, ob es ein Problem gibt, bei dem die geöffnete Tabelle noch nicht fertig ist, aber ich kann nicht sehen, wie.

Der Code ist hier. Der Fehler tritt in der mit einem Kommentar markierten Zeile auf.

Public Function GetDatesA(sWorkbookname As String, sSheetname As String, sCell As String) As Variant

    Dim vDateList() As Variant
    Dim currentCell As Range
    Dim n As Long

    Set currentCell = Workbooks(sWorkbookname).Worksheets(sSheetname).Range(sCell)

    n = 0

    Do
        If Trim(currentCell.Value) = "" Then
            Exit Do
        Else
            ReDim Preserve vDateList(0 To 1, 0 To n)
            vDateList(0, n) = WorksheetFunction.RoundDown(currentCell.Value, 0) 'error occcurs on this line
            vDateList(1, n) = currentCell.Column
            'Debug.Print currentCell.Value
        End If
        Set currentCell = currentCell.Offset(0, 1)
        n = n + 1
    Loop While currentCell.Column < XL_LAST_COLUMN

    GetDatesA = vDateList

End Function

Weitere Details sind:

Excel-Version: 2010

Die zu öffnende Datei befindet sich lokal auf meinem Laufwerk C :. Mein Makro befindet sich in einer Tabelle im Netzwerk

Das Dateiformat für beide Dateien ist .xls (d. H. Excel 2003). Ich habe keine Möglichkeit, dies zu ändern

Windows 7 (nicht, dass ich es für relevant halte)

Zwei Punkte, die ich bereits ausprobiert habe, sind:

Ersetzen Sie eine andere Arbeitsblatt-Funktion (z. B. Min (currentCell)) und das verursacht auch dasselbe Problem

Das Öffnen der Datei scheint das Problem bereits zu beenden. Ich frage mich, ob die geöffnete Arbeitsmappe (und nicht meine Hauptarbeitsmappe mit dem Makro darin) auf irgendeine Weise nicht für Makros aktiviert ist und dies stört. Aber selbst wenn dies der Grund ist, bin ich mir nicht sicher, wie ich es umgehen soll!

Irgendwelche Ideen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage