2

описание проблемы

У меня есть пользовательская формула, которую я написал, но для вычисления ответа требуется некоторое время, и, так как Excel обновляет значения функций (когда вы активируете рабочую книгу или повторно открываете рабочую книгу и т.д.), Я не могу ее перевести. -Обработка функции.

Я попытался вызвать подпроцесс, чтобы скопировать ячейку и вставить значения (Заменить формулу с ее результатом), но он возвращает =#VALUE! , Вероятно, что-то делать с круговыми ссылками ...

Вопрос

Есть ли способ перезаписать формулу в ячейке ее значением из определенной пользователем формулы?

2 ответа2

2

Нет способа перезаписать любую ячейку из UDF, она может только вернуть значение.

Вы можете использовать функцию Worksheet_Change, чтобы обойти это ...

В листе:

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Range("A1"), Target) Is Nothing Then
    'do nothing - not worried about anything not in A1
Else
    Range("A1").Value = Range("A1").Value
End If
End Sub

Независимо от того, какую формулу вы вводите в A1, на листе, в который вы помещаете этот код, будет преобразовано значение, а формула будет удалена.

1
  1. Выберите ячейку
  2. Щелкните правой кнопкой мыши> Копировать (или [CTRL]+[c])
  3. Щелкните правой кнопкой мыши> Специальная вставка> Вставить значения

Это должно заменить формулу полученным числом / значением.

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