В приведенном ниже листе Excel есть строка "заголовка" и комбинация "обычных" строк и строк "промежуточных итогов".

Есть ли способ отредактировать формулу для ячейки, например, щелчкованную на скриншоте ниже, и обновить формулу для всех остальных строк, не затрагивая строки заголовка и промежуточной суммы?

Единственный способ, который я знаю сейчас, - это отредактировать его, а затем скопировать один, а затем вставить его на все остальные, что является большой болью, когда мне приходится вручную выбирать их все специально, чтобы не вставлять поверх строк промежуточных итогов ...

Скриншот

1 ответ1

0

Я хотел бы предложить вам VBA (макрос), который поможет вам преобразовать конкретные ячейки / диапазоны ячеек в Value чтобы сделать формулу неисчисляющей.

Sub FormulatoValue()

Dim Rng As Range
Dim WorkRng As Range

On Error Resume Next
xTitleId = "Formula to Value"

Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)

Application.ScreenUpdating = False

For Each Rng In WorkRng
    Rng.Value = Rng.Text
Next

Application.ScreenUpdating = True

End Sub

Как это устроено:

  1. Скопируйте и вставьте этот код как стандартный модуль вместе с листом.
  2. Когда макрос отображает поле Input Box вы можете щелкнуть ячейку или ярость ячейки, например, A1, A4, A2:F2, A2:A10 .
  3. Готово с Ok .

NB. Этот пример кода поможет вам восстановить формулу в определенной ячейке / диапазоне ячеек.

Sub displayformula()
If Range("A2") <> "" Then Range("A2").Formula = "=Average(H1:H6)"
If Range("A2:F2") <> "" Then Range("A2:F2").Formula = "=Average(H1:H6)"
End Sub

При необходимости измените ссылки на ячейки в коде.

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