Erro do Excel 1004 “Não é possível obter… propriedade da classe WorksheetFunction” aparecendo de forma inconsistente
Eu tenho uma função VBA dentro de uma planilha que opera em outra planilha que é aberta em um estágio anterior da minha macro. A macro costumava funcionar bem, mas só recentemente começou a causar1004 erro ("Não é possível obter a propriedade RoundDown da classe WorksheetFunction") quando é executado.
Eu acredito que eu entendo o que o erro seria causado por (um problema executando o RoundDown), mas não consigo ver por que ele está sendo acionado na minha macro e a parte ímpar é que quando eu entro no modo de depuração e passo através do código no VBE erro não se repete (apesar de nada obviamente mudar).
Alguém tem uma experiência semelhante desse tipo de erro ocorrendo inconsistentemente e sabe o que eu poderia fazer para resolvê-lo?
Eu sou razoavelmente experiente em VBA / Excel, mas qualquer sugestão sobre outras etapas para diagnosticar isso seria apreciada. Eu estou querendo saber se há algum problema com a planilha aberta não estar pronto, mas não consigo ver como.
O código está aqui. O erro ocorre na linha marcada com um comentário.
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
Outros detalhes são:
Versão do Excel: 2010
Arquivo sendo aberto reside localmente na minha unidade C:; minha macro está em uma planilha na rede
O formato de arquivo para ambos os arquivos é .xls (ou seja, o Excel 2003) - não tenho a opção de alterar este
Windows 7 (não que eu acho que seria relevante)
Dois pontos que já tentei são:
Substituir uma função de planilha diferente (por exemplo, Min (currentCell)) e isso também causa o mesmo problema
Ter o arquivo aberto já parece parar o problema - eu me pergunto se há alguma maneira que a pasta de trabalho que está sendo aberta (em vez da minha pasta de trabalho principal com a macro nela) não está habilitada para macros e isso está interferindo. Mas mesmo que seja essa a causa, não sei como contornar isso!
Alguma ideia?