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?