Error de Excel 1004 "No se puede obtener ... la propiedad de la clase WorksheetFunction" que aparece de manera inconsistente
Tengo una función VBA dentro de una hoja de cálculo que opera en otra hoja de cálculo que se abre en una etapa anterior de mi macro. La macro solía funcionar bien, pero recientemente ha comenzado causando un1004 error"No se puede obtener la propiedad RoundDown de la clase WorksheetFunction") cuando se ejecuta.
Creo que entiendo a qué se debe el error (un problema al ejecutar RoundDown) pero no puedo ver por qué se activa en mi macro y lo extraño es que cuando entro en el modo de depuración y paso por el código en el VBE. el error no se repite (a pesar de que nada cambia obviamente).
¿Alguien tiene una experiencia similar en la que este tipo de error ocurra de manera inconsistente y sepa qué podría hacer para resolverlo?
Soy razonablemente experto en VBA / Excel, pero cualquier sugerencia sobre otros pasos para diagnosticarla sería apreciada. Me pregunto si hay algún problema con la hoja de cálculo abierta que no está lista pero no puedo ver cómo.
El código está aquí. El error se produce en la línea marcada con un comentario.
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
Otros detalles son:
Versión de Excel: 2010
El archivo que se está abriendo reside localmente en mi disco C: Mi macro está en una hoja de cálculo en la red.
El formato de archivo para ambos archivos es .xls (es decir, Excel 2003). No tengo la opción de cambiar esto.
Windows 7 (no creo que sea relevante)
Dos puntos que ya he probado son:
Sustituye una función de hoja de cálculo diferente (por ejemplo, Min (currentCell)) y eso también causa el mismo problema
Tener el archivo abierto ya parece detener el problema. Me pregunto si hay alguna forma de que el libro que se está abriendo (en lugar de mi libro principal con la macro) no esté habilitado para macros y esto interfiera. Pero incluso si esta es la causa, no estoy seguro de cómo solucionarlo.
¿Algunas ideas?