Błąd Excel 1004 „Nie można uzyskać… właściwości klasy WorksheetFunction” pojawia się niespójnie

Mam funkcję VBA w arkuszu kalkulacyjnym, który działa na innym arkuszu kalkulacyjnym, który jest otwierany na wcześniejszym etapie mojego makra. Makro działało dobrze, ale ostatnio zaczęło powodować1004 błąd („Nie można pobrać właściwości RoundDown klasy WorksheetFunction”) gdy biegnie.

Sądzę, że rozumiem, co spowodowałby błąd (problem z uruchomieniem RoundDown), ale nie rozumiem, dlaczego jest uruchamiany w moim makrze, a dziwne jest to, że kiedy przechodzę do trybu debugowania i przechodzę przez kod w VBE, błąd nie powtarza się (mimo że nic się nie zmienia).

Czy ktoś ma podobne doświadczenia z tego rodzaju błędami występującymi niespójnie i wie, co mogę zrobić, aby go rozwiązać?

Mam rozsądne doświadczenie w zakresie VBA / Excel, ale wszelkie sugestie dotyczące dalszych kroków w celu zdiagnozowania tego byłyby mile widziane. Zastanawiam się, czy istnieje problem z otwartym arkuszem kalkulacyjnym, który nie jest gotowy, ale nie widzę, jak.

Kod jest tutaj. Błąd występuje w linii oznaczonej komentarzem.

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

Inne szczegóły to:

Wersja Excel: 2010

Otwierany plik znajduje się lokalnie na moim dysku C:; moje makro znajduje się w arkuszu kalkulacyjnym w sieci

Format pliku dla obu plików to .xls (np. Excel 2003) - nie mam możliwości zmiany tego pliku

Windows 7 (nie, że myślę, że byłoby to istotne)

Dwa punkty, które już wypróbowałem to:

Zastąp inną funkcję arkusza (np. Min (currentCell)), co również powoduje ten sam problem

Otwarcie pliku już wydaje się zatrzymywać problem - zastanawiam się, czy jest jakiś sposób, aby otwierany skoroszyt (a nie mój główny skoroszyt z makro) nie był włączony dla makr i to przeszkadza. Ale nawet jeśli jest to przyczyna, nie jestem pewien, jak to obejść!

Jakieś pomysły?

questionAnswers(3)

yourAnswerToTheQuestion