Формула макросом значением в excel

Преобразование формул в значения

Формулы – это хорошо. Они автоматически пересчитываются при любом изменении исходных данных, превращая Excel из «калькулятора-переростка» в мощную автоматизированную систему обработки поступающих данных. Они позволяют выполнять сложные вычисления с хитрой логикой и структурой. Но иногда возникают ситуации, когда лучше бы вместо формул в ячейках остались значения. Например:

  • Вы хотите зафиксировать цифры в вашем отчете на текущую дату.
  • Вы не хотите, чтобы клиент увидел формулы, по которым вы рассчитывали для него стоимость проекта (а то поймет, что вы заложили 300% маржи на всякий случай).
  • Ваш файл содержит такое больше количество формул, что Excel начал жутко тормозить при любых, даже самых простых изменениях в нем, т.к. постоянно их пересчитывает (хотя, честности ради, надо сказать, что это можно решить временным отключением автоматических вычислений на вкладке Формулы – Параметры вычислений).
  • Вы хотите скопировать диапазон с данными из одного места в другое, но при копировании «сползут» все ссылки в формулах.

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

Способ 1. Классический

Этот способ прост, известен большинству пользователей и заключается в использовании специальной вставки:

  1. Выделите диапазон с формулами, которые нужно заменить на значения.
  2. Скопируйте его правой кнопкой мыши – Копировать (Copy).
  3. Щелкните правой кнопкой мыши по выделенным ячейкам и выберите либо значок Значения (Values):

    преобразование формул в значения в Excel
    либо наведитесь мышью на команду Специальная вставка (Paste Special), чтобы увидеть подменю:

    formulas-to-values2.png
    Из него можно выбрать варианты вставки значений с сохранением дизайна или числовых форматов исходных ячеек.

    В старых версиях Excel таких удобных желтых кнопочек нет, но можно просто выбрать команду Специальная вставка и затем опцию Значения (Paste Special — Values) в открывшемся диалоговом окне:

    formulas-to-values3.png

Способ 2. Только клавишами без мыши

При некотором навыке, можно проделать всё вышеперечисленное вообще на касаясь мыши:

  1. Копируем выделенный диапазон Ctrl+C
  2. Тут же вставляем обратно сочетанием Ctrl+V
  3. Жмём Ctrl, чтобы вызвать меню вариантов вставки
  4. Нажимаем клавишу с русской буквой З или используем стрелки, чтобы выбрать вариант Значения и подтверждаем выбор клавишей Enter:

Замена формул на значения соч.клавиш

Способ 3. Только мышью без клавиш или Ловкость Рук

Этот способ требует определенной сноровки, но будет заметно быстрее предыдущего. Делаем следующее:

  1. Выделяем диапазон с формулами на листе
  2. Хватаем за край выделенной области (толстая черная линия по периметру) и, удерживая ПРАВУЮ клавишу мыши, перетаскиваем на пару сантиметров в любую сторону, а потом возвращаем на то же место
  3. В появившемся контекстном меню после перетаскивания выбираем Копировать только значения (Copy As Values Only).

formulas-to-values4.gif

После небольшой тренировки делается такое действие очень легко и быстро. Главное, чтобы сосед под локоть не толкал и руки не дрожали ;)

Способ 4. Кнопка для вставки значений на Панели быстрого доступа

Ускорить специальную вставку можно, если добавить на панель быстрого доступа в левый верхний угол окна кнопку Вставить как значения. Для этого выберите Файл — Параметры — Панель быстрого доступа (File — Options — Customize Quick Access Toolbar). В открывшемся окне выберите Все команды (All commands) в выпадающем списке, найдите кнопку Вставить значения (Paste Values) и добавьте ее на панель:

Добавление кнопки вставки значений на панель быстрого доступа

Теперь после копирования ячеек с формулами будет достаточно нажать на эту кнопку на панели быстрого доступа:

Кнопка вставки значений на панели быстрого доступа

Кроме того, по умолчанию всем кнопкам на этой панели присваивается сочетание клавиш Alt + цифра (нажимать последовательно). Если нажать на клавишу Alt, то Excel подскажет цифру, которая за это отвечает:

Подсветка горячих клавиш

Способ 5. Макросы для выделенного диапазона, целого листа или всей книги сразу

Если вас не пугает слово «макросы», то это будет, пожалуй, самый быстрый способ.

Макрос для превращения всех формул в значения в выделенном диапазоне (или нескольких диапазонах, выделенных одновременно с Ctrl) выглядит так:

Sub Formulas_To_Values_Selection()
'преобразование формул в значения в выделенном диапазоне(ах)
    Dim smallrng As Range
    For Each smallrng In Selection.Areas
        smallrng.Value = smallrng.Value
    Next smallrng
End Sub

Если вам нужно преобразовать в значения текущий лист, то макрос будет таким:

Sub Formulas_To_Values_Sheet()
'преобразование формул в значения на текущем листе
    ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
End Sub
 

И, наконец, для превращения всех формул в книге на всех листах придется использовать вот такую конструкцию:

Sub Formulas_To_Values_Book()
'преобразование формул в значения во всей книге
    For Each ws In ActiveWorkbook.Worksheets
        ws.UsedRange.Value = ws.UsedRange.Value
    Next ws
End Sub
 

Код нужных макросов можно скопировать в новый модуль вашего файла (жмем Alt+F11 чтобы попасть в Visual Basic, далее Insert — Module). Запускать их потом можно через вкладку Разработчик — Макросы (Developer — Macros) или сочетанием клавиш Alt+F8. Макросы будут работать в любой книге, пока открыт файл, где они хранятся. И помните, пожалуйста, о том, что действия выполненные макросом невозможно отменить — применяйте их с осторожностью. 

Способ 6. Для ленивых

Если ломает делать все вышеперечисленное, то можно поступить еще проще — установить надстройку PLEX, где уже есть готовые макросы для конвертации формул в значения и делать все одним касанием мыши:

formulas-to-values.png

В этом случае:

  • всё будет максимально быстро и просто
  • можно откатить ошибочную конвертацию отменой последнего действия или сочетанием Ctrl+Z как обычно
  • в отличие от предыдущего способа, этот макрос корректно работает, если на листе есть скрытые строки/столбцы или включены фильтры
  • любой из этих команд можно назначить любое удобное вам сочетание клавиш в Диспетчере горячих клавиш PLEX

Ссылки по теме

  • Что такое макросы, как их использовать, копировать и запускать
  • Как скопировать формулы без сдвига ссылок
  • Как считать в Excel без формул

В данной статье представлены разные варианты макросов для быстрой замены формул на значения в документах MS Excel

Заменить формулу на значение можно следующим образом: выделяем нужную ячейку, нажимаем F2, F9, Enter и в текущей ячейке формула заменится на значение. Если таких ячеек много, то это превратится в долгий и рутинный процесс. На помощь придут следующие макросы

Макрос для превращения всех формул в значения в выделенном диапазоне (или нескольких диапазонах, выделенных одновременно с Ctrl):

Sub Formulas_To_Values_Selection()
 'преобразование формул в значения в выделенном диапазоне    
Dim smallrng As Range
     For Each smallrng In Selection.Areas
         smallrng.Value = smallrng.Value
     Next smallrng
 End Sub

Макрос для превращения всех формул в значения на текущем листе:

Sub Formulas_To_Values_Sheet()
'преобразование формул в значения на текущем листе
ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
End Sub

Макрос для превращения всех формул в книге и на всех листах:

Sub Formulas_To_Values_Book()
'преобразование формул в значения во всей книге
For Each ws In ActiveWorkbook.Worksheets
ws.UsedRange.Value = ws.UsedRange.Value
Next ws
End Sub

Данный макрос меняет все формулы на значения во всех файлах на всех листах в указанной папке

Sub УдалитьВсеФормулыВПапке()   
 Dim fd As FileDialog   
 Dim iPath As String   
 Dim iFileName As String   
 Dim iSheet As Worksheet   
 Set fd = Application.FileDialog(msoFileDialogFolderPicker)   
    ChDir "C:"   
    With fd   
        .ButtonName = "Выбрать"   
        If .Show = -1 Then   
            iPath = .SelectedItems(1) & Application.PathSeparator   
        Else   
            Exit Sub   
        End If   
    End With   
    Set fd = Nothing    
if MsgBox("Во всех документах Excel в папке " & iPath & " на всех листах формулы будут заменены на значения!" & Chr(13) & "Вы уверены ???", vbOKCancel + vbExclamation, "Подтверждение") = vbCancel Then Exit Sub   
If MsgBox("Вы отдаёте себе отчёт, что формулы во всех файлах будут удалены?", vbOKCancel + vbExclamation, "Подтверждение") = vbCancel Then Exit Sub    
If MsgBox("Во всех документах Excel в папке " & iPath & " на всех листах формулы будут заменены на значения!" & Chr(13) & "Вы уверены ???", vbOKCancel + vbExclamation, "Подтверждение") = vbCancel Then Exit Sub   
  With Application   
       .ScreenUpdating = False   
       .Calculation = xlCalculationManual   
       '.EnableEvents = False   
       iFileName = Dir(iPath & "*.xls")   
       Do While iFileName$ <> ""   
           With Workbooks.Open(Filename:=iPath & iFileName, UpdateLinks:=0)   
               For Each iSheet In .Sheets   
                   With iSheet.UsedRange   
                       .Value = .Value   
                   End With   
               Next   
           .Close saveChanges:=True   
           End With   
           iFileName$ = Dir   
       Loop   
       .EnableEvents = True   
       .Calculation = xlCalculationAutomatic   
       .ScreenUpdating = True   
   End With   
       MsgBox "Во всех документах Excel в папке " & iPath & " на всех листах формулы были заменены на значения!", 64, "Конец"   
End Sub 

Код нужных макросов можно скопировать в новый модуль вашего файла. Нажимаем Alt+F11 чтобы попасть в Visual Basic, далее Insert – Module чтобы попасть в Visual Basic, далее Insert – Module. Запускать их потом можно через вкладку Разработчик – Макросы (Developer – Macros) или сочетанием клавиш Alt+F8. Макросы будут работать в любой книге, пока открыт файл, где они хранятся.

Внимание! Действия выполненные макросом невозможно отменить – применяйте их с осторожностью.

На чтение 4 мин Опубликовано 25.01.2021

Часто перед пользователями табличного редактора Эксель встает задача, когда необходимо реализовать замену формул на значения. Осуществить это процедуру можно различными способами. В статье мы разберем множество методов, позволяющих заменить формулу на значения в табличном документе.

Содержание

  1. Первый метод: стандартная замена формул на значения
  2. Второй метод: использование горячих клавиш табличного редактора
  3. Третий метод: замена при помощи мышки
  4. Четвертый метод: применение специальной кнопки для вставки значений
  5. Пятый метод: использование специальных макросов
  6. Заключение и выводы о быстрой замене формул на значения в табличном документе

Первый метод: стандартная замена формул на значения

Это самый известный и распространенный способ, позволяющий заменить формулы на значения. Подробная инструкция выглядит так:

  1. Первоначально производим выделение того диапазона данных, в котором мы желаем реализовать замену формул на значения.
  2. Реализуем копирование данных. Для этого нажимаем правой клавишей мышки по выбранному диапазону и в контекстном меню кликаем на элемент «Копировать». Альтернативный вариант – использование комбинации клавиш «Ctrl+C».
  3. Кликаем ПКМ по выбранному диапазону. Здесь можно выбрать иконку под названием «Значения».

Как быстро заменить формулы на значения в таблице Excel

  1. Следует навести мышку на элемент «Специальная вставка», чтобы раскрыть перечень функций.

Как быстро заменить формулы на значения в таблице Excel

  1. Здесь располагаются все возможные вариации вставки значений с сохранностью форматирования исходных ячеек.

Стоит отметить, что в ранних версиях табличного редактора отсутствуют такие дополнительные значки, поэтому все операции производятся через такое окно:

Как быстро заменить формулы на значения в таблице Excel

Второй метод: использование горячих клавиш табличного редактора

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

  1. Реализуем копирование нужного диапазона при помощи комбинации клавиш «Ctrl+C».
  2. Сюда же осуществляем обратную вставку при помощи комбинации клавиш «Ctrl+V».
  3. Щелкаем на «Ctrl», чтобы отобразить небольшое меню, в котором будут предложены вариации вставки.
  4. Щёлкаем на «З» на русской раскладке или же используем стрелочки для выбора параметра «Значения». Осуществляем подтверждение всех проделанных действий при помощи клавиши «Enter», расположенной на клавиатуре.

Третий метод: замена при помощи мышки

Этот метод позволяет осуществить процедуру замены формул на значения намного быстрее вышеприведенных методов. Здесь используется только компьютерная мышка. Подробная инструкция выглядит так:

  1. Производим выделение ячеек с формулами на рабочем листе табличного документа.
  2. Беремся за рамку выделенного фрагмента и, зажав ПКМ, осуществляем перетаскивание на два см в какую-либо сторону, а затем реализуем возврат на начальную позицию.
  3. После осуществления этой процедуры отобразилось небольшое специальное контекстное меню, в котором необходимо выбрать элемент, имеющий наименование «Копировать только значения».

Четвертый метод: применение специальной кнопки для вставки значений

Значительно ускорить процедуру специальной вставки можно при помощи добавления специальной кнопки «Вставить как значения» на панель быстрого доступа. Подробная инструкция по добавлению и использованию выглядит так:

  1. Передвигаемся в подраздел «Файл».
  2. Выбираем элемент, имеющий наименование «Параметры».
  3. Щёлкаем левой клавишей мышки на «Панель быстрого доступа».
  4. На экране отобразилось окошко, в котором можно добавить разнообразные элементы на панель быстрого доступа. Раскрываем перечень под названием «Все команды».
  5. В раскрывшемся перечне находим элемент под названием «Вставить значения» и добавляем его на панель быстрого доступа при помощи кнопки «Добавить». Как быстро заменить формулы на значения в таблице Excel
  6. Готово! Мы добавили эту кнопку на панель быстрого доступа.
  7. Теперь остается только скопировать диапазон ячеек, в котором располагаются необходимые нам формулы, а затем нажать на только что добавленную кнопку на панели быстрого доступа.

Как быстро заменить формулы на значения в таблице Excel

Стоит заметить, что стандартно всем кнопку на панели быстрого доступа задается комбинация клавиш «Alt+цифра». После клика на «Alt» на верхней панели покажется цифра, обозначающая эту кнопку.

Как быстро заменить формулы на значения в таблице Excel

Пятый метод: использование специальных макросов

Использование макросов – самый быстрый способ, позволяющий заменить формулы на значения. Так выглядит макрос, позволяющий заменить все формулы на значения в выбранном диапазоне:

Как быстро заменить формулы на значения в таблице Excel

Так выглядит макрос, позволяющий заменить все формулы на значения на выбранном рабочем листике табличного документа:

Как быстро заменить формулы на значения в таблице Excel

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

Как быстро заменить формулы на значения в таблице Excel

Подробная инструкция по использованию макросов выглядит так:

  1. При помощи комбинации клавиш «Alt+F11» открываем редактор VBA.
  2. Открываем подраздел «Insert», а затем жмем левой клавишей мышки по элементу «Module».
  3. Сюда мы вставляем один из вышеприведенных кодов.
  4. Запуск пользовательских макросов осуществляется через подраздел «Макросы», располагающийся в разделе «Разработчик». Альтернативный вариант – использование комбинации клавиш «Alt+F8» на клавиатуре.
  5. Макросы работают в любом табличном документе.

Стоит помнить, что манипуляции, реализованные при помощи макроса, нельзя отменить.

Заключение и выводы о быстрой замене формул на значения в табличном документе

Мы выяснили, что существует множество вариантов, позволяющих реализовать замену формул на значения в табличном документе. Реализовать эту процедуру можно при помощи специальной вставки, комбинаций клавиш, компьютерной мышки, персональных макросов и специальной кнопки, добавляемой на панель быстрого доступа. Каждый метод имеет свои преимущества и недостатки. Пользователь может самостоятельно подобрать для себя наиболее удобный и быстрый метод, позволяющий реализовать замену формул на значения в табличном документе.

Оцените качество статьи. Нам важно ваше мнение:

Skip to content

На чтение 3 мин. Просмотров 3.5k.

Что делает макрос: Этот макрос помогает преобразовать все формулы в заданном диапазоне в значения.

Содержание

  1. Как макрос работает
  2. Код макроса
  3. Как этот код работает
  4. Как использовать

Как макрос работает

В этом макросе, мы используем две переменные объекта Range. Одна из переменных отражает объем данных, с которым мы работаем, другая использует диапазон для хранения каждой отдельной ячейки. Каждый раз, когда активируется ячейка, мы проверяем, содержит ли
она формулу. Если это так, мы заменим формулу значением, которое отображается в ячейке.

Код макроса

Sub PreobrazovatFormuliVZnacheniya()
'Щаг 1: Объявляем переменные
Dim MyRange As Range
Dim MyCell As Range
'Шаг 2: Сохраните книгу прежде, чем измените ячейки?
Select Case MsgBox("Перед изменением ячеек" & _
"Сохранить книгу?", vbYesNoCancel)
Case Is = vbYes
ThisWorkbook.Save
Case Is = vbCancel
Exit Sub
End Select
'Шаг 3: Определяем целевой диапазон
Set MyRange = Selection
'Шаг 4: Запускаем цикл по диапазону
For Each MyCell In MyRange
'Шаг 5: Если в ячейке есть формула, устанавливаем значение
If MyCell.HasFormula Then
MyCell.Formula = MyCell.Value
End If
'Шаг 6: Получаем следующую ячейку в диапазоне
Next MyCell
End Sub

Как этот код работает

  1. Шаг 1 объявляет две переменные объекта Range.
  2. При выполнении макрос уничтожает стек отката. Это означает, что вы не сможете отменить изменения, поэтому нужно сохранить книгу перед запуском макроса. Это делает Шаг 2.
  3. Здесь мы вызываем окно сообщения, которое спрашивает, хотим ли мы сохранить книгу в первую очередь. Затем он дает нам три варианта: Да, Нет и Отмена. Щелчок Да сохраняет книгу и продолжает с помощью макроса. Нажатие кнопки Отмена выходит из процедуры без запуска макроса. Щелчок Нет запускает макрос без сохранения рабочей книги.
  4. Шаг 3 заполняет переменную MyRange с целевым диапазоном. В этом примере мы используем выбранный диапазон — диапазон, который был выбран в электронной таблице. Вы можете легко установить переменную MyRange в определенном диапазоне, таком как Range («A1:Z100»). Кроме того, если ваш целевой диапазон является именованный диапазон, вы можете просто ввести его имя: Range («MyNamedRange»).
  5. тот этап начинает цикл через каждую ячейку в целевом диапазоне, активизируя каждую ячейку. После того, как ячейка активируется, макрос использует свойство HasFormula, чтобы проверить, содержит ли ячейка формулу. Если содержит, мы устанавливаем ячейку равную значению, которое отображается в ячейке. Это эффективно заменяет формулу с жестко предопределенным значением.
  6. Шаг 6 повторяет цикл, чтобы получить следующую ячейку. После просмотра всех ячеек в целевом диапазоне макрос заканчивается.

Как использовать

Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:

  1. Активируйте редактор Visual Basic, нажав ALT + F11 на клавиатуре.
  2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
  3. Выберите Insert➜Module.
  4. Введите или вставьте код.

  1. Что делает макрос
  2. Код макроса
  3. Как работает макрос
  4. Как использовать
  5. Скачать файл

Ссылка на это место страницы:
#zadacha

Этот макрос помогает преобразовать все формулы в заданном диапазоне в значения.

В этом макросе, мы используем две переменные объекта Range. Одна из переменных содержит объем данных, с которым мы работаем, другая использует диапазон для хранения каждой отдельной ячейки. Каждый раз, когда активируется ячейка, мы проверяем, содержит ли она формулу. Если это так — мы заменим формулу значением, которое отображается в ячейке. 

Ссылка на это место страницы:
#formula

  1. Sub PreobrazovatFormuliVZnacheniya()
  2. Dim MyRange As Range
  3. Dim MyCell As Range
  4. Select Case MsgBox("Перед изменением ячеек" & _
  5. " Сохранить книгу?", vbYesNoCancel)
  6. Case Is = vbYes
  7. ThisWorkbook.Save
  8. Case Is = vbCancel
  9. Exit Sub
  10. End Select
  11. Set MyRange = Selection
  12. For Each MyCell In MyRange
  13. If MyCell.HasFormula Then
  14. MyCell.Formula = MyCell.Value
  15. End If
  16. Next MyCell
  17. End Sub

Ссылка на это место страницы:
#kak

1. Шаг 1 объявляет две переменные объекта Range

2. При выполнении макрос уничтожает стек отката. Это означает, что вы не сможете отменить изменения, поэтому нужно сохранить книгу перед запуском макроса. Это делает Шаг 2. 

3. Здесь мы вызываем окно сообщения, которое спрашивает, хотим ли мы сохранить книгу. Затем он дает нам три варианта: Да, Нет и Отмена. Выбор Да сохраняет книгу и продолжает макрос. Нажатие кнопки Отмена выходит из процедуры без запуска макроса. Нажатие Нет запускает макрос без сохранения рабочей книги. 

4. Шаг 4 заполняет переменную MyRange с целевым диапазоном. В этом примере мы используем выбранный диапазон — диапазон, который был выбран в электронной таблице. Вы можете легко установить переменную MyRange в определенном диапазоне, таком как Range («A1:Z100»). Кроме того, если ваш целевой диапазон является именованным диапазоном, вы можете просто ввести его имя: Range («MyNamedRange»).

5. Этот этап запускает цикл по каждой ячейке в целевом диапазоне. После того, как ячейка активируется, макрос использует свойство HasFormula, чтобы проверить, содержит ли ячейка формулу. Если содержит, мы устанавливаем ячейку равную значению, которое отображается в ячейке. 

6. Шаг 6 повторяет цикл, чтобы получить следующую ячейку. После просмотра всех ячеек в целевом диапазоне макрос заканчивается. 

Ссылка на это место страницы:
#touse

Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:

1. Активируйте редактор Visual Basic, нажав ALT + F11
2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта. 
3. Выберите Insert➜Module
4. Введите или вставьте код во вновь созданном модуле. 

Ссылка на это место страницы:
#file

Файлы статей доступны только зарегистрированным пользователям.

1. Введите свою почту

2. Нажмите Зарегистрироваться

3. Обновите страницу
Вместо этого блока появится ссылка для скачивания материалов.

Привет! Меня зовут Дмитрий. С 2014 года Microsoft Cretified Trainer. Вместе с командой управляем этим сайтом. Наша цель — помочь вам эффективнее работать в Excel. 

Изучайте наши статьи с примерами формул, сводных таблиц, условного форматирования, диаграмм и макросов. Записывайтесь на наши курсы или заказывайте обучение в корпоративном формате.

Подписывайтесь на нас в соц.сетях:

Понравилась статья? Поделить с друзьями:
  • Формула между в excel примеры
  • Формула логистической регрессии в excel
  • Формула медианы в excel что это
  • Формула логистики в excel
  • Формула мах в excel