2

Свойство Excel Precedents.Count возвращает значение в формуле ячейки, отличное от значения, отображаемого при вызове той же функции в непосредственном окне.

Ниже приведены функции и код тестирования.

Function CountPrecedents()
  CountPrecedents = Range("A1").Precedents.Count
End Function

Sub TestCountPrecedents()
  Range("A1").Formula = "=B1+B2"
  Range("C1").Formula = "=CountPrecedents()"
  Debug.Print "The cell value is " & Range("C1").Value
  Debug.Print "The true function value is " & CountPrecedents()
End Sub

Запуск TestCountPrecedents в окне Immediate приводит к следующему выводу:

The cell value is 1
The true function value is 2

Почему функция ячейки имеет значение, отличное от непосредственного окна? Я не могу повторить это поведение с другими свойствами Range .

1 ответ1

1

Это ограничение использования этого свойства в UDF на основе ячеек UDF() .

Тот же UDF будет работать правильно, если вызывается из подпрограммы:

Sub MAIN()
    MsgBox CountPrecedents()
End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .