В данной статье представлены разные варианты макросов для быстрой замены формул на значения в документах 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. Макросы будут работать в любой книге, пока открыт файл, где они хранятся.
Внимание! Действия выполненные макросом невозможно отменить – применяйте их с осторожностью.
Когда удобно менять формулы на значения нажатием горячих клавиш?
Порой бывают ситуации, когда вычисления в отчете выполняются на основании данных полученных из временной промежуточной таблицы. Эту таблицу нужно исключить из отчета, но при ее удалении полученные значения в отчете изменяются, так как «привязаны» к промежуточной таблице (черновику) формулами.
Для того, чтобы «отвязать» результаты расчетов от исходных данных следует заменить формулы в ячейках на их значения (цифры).
Сделать это можно скопировав столбец или строку и, выполнив вставку значений через меню быстрого доступа.
Это не всегда удобно. Например, если вы используете фильтры, значения вставятся не в нужные ячейки, а в ячейки под фильтрами. Кроме того, такая процедура не быстрая – несколько кликов и при замене нескольких тысяч строчек руки будут сильно уставать набора однообразных действий.
Естественно, любому пользователю хочется выполнять замену формул на значения в один клик, а лучше даже сочетанием горячих клавиш.
Как реализовать замену формул на значения (числа) в выделенных ячейках при помощи горячих клавиш с назначенным макросом рассмотрим ниже.
Для начала следует записать макрос замены.
- В панели разработчика создаем модуль (контейнер) для макроса:
- Кликаем на пиктограмму Visual Basic
- В открывшемся окне кликаем правой кнопкой мыши по книге и выбираем в контекстном меню insert => Module
- Открываем созданный модуль двойным щелчком мыши и записываем в него текст макроса.
Sub Замена_формул()
For Each cell In Selection
cell.Formula = cell.Value
Next
End Sub
где
Sub Замена_формул() – название макроса;
For Each cell In Selection – цикл повторяющихся действий от первой ячейки до конца выделения;
cell.Formula = cell.Value – действие по замене формулы на значение;
End Sub – конец макроса.
- После записи макроса следует зайти в панели разработчика в список макросов и кликнув по кнопке параметры назначить макросу сочетание клавиш.
Теперь если выделить диапазон с формулами и нажать заданное сочетание клавиш значения выделенных ячеек будут заменены на числа.
После замены формул на значения можно смело удалять промежуточные таблицы (черновики) из отчета .
Видео работы макроса замены формул на значения:
Содержание
- Макрос для быстрой замены формул на значения (числа) в выделенных ячейках документа Excel.
- Как реализовать замену формул на значения (числа) в выделенных ячейках при помощи горячих клавиш с назначенным макросом рассмотрим ниже.
- Теперь если выделить диапазон с формулами и нажать заданное сочетание клавиш значения выделенных ячеек будут заменены на числа.
- Видео работы макроса замены формул на значения:
- Добавить комментарий Отменить ответ
- Как быстро заменить формулы на значения в таблице Excel
- Первый метод: стандартная замена формул на значения
- Второй метод: использование горячих клавиш табличного редактора
- Третий метод: замена при помощи мышки
- Четвертый метод: применение специальной кнопки для вставки значений
- Пятый метод: использование специальных макросов
- Заключение и выводы о быстрой замене формул на значения в табличном документе
- Преобразование формул в значения
- Способ 1. Классический
- Способ 2. Только клавишами без мыши
- Способ 3. Только мышью без клавиш или Ловкость Рук
- Способ 4. Кнопка для вставки значений на Панели быстрого доступа
- Способ 5. Макросы для выделенного диапазона, целого листа или всей книги сразу
- Способ 6. Для ленивых
Макрос для быстрой замены формул на значения (числа) в выделенных ячейках документа Excel.
Порой бывают ситуации, когда вычисления в отчете выполняются на основании данных полученных из временной промежуточной таблицы. Эту таблицу нужно исключить из отчета, но при ее удалении полученные значения в отчете изменяются, так как «привязаны» к промежуточной таблице (черновику) формулами.
Для того, чтобы «отвязать» результаты расчетов от исходных данных следует заменить формулы в ячейках на их значения (цифры).
Сделать это можно скопировав столбец или строку и, выполнив вставку значений через меню быстрого доступа.
Это не всегда удобно. Например, если вы используете фильтры, значения вставятся не в нужные ячейки, а в ячейки под фильтрами. Кроме того, такая процедура не быстрая – несколько кликов и при замене нескольких тысяч строчек руки будут сильно уставать набора однообразных действий.
Естественно, любому пользователю хочется выполнять замену формул на значения в один клик, а лучше даже сочетанием горячих клавиш.
Для начала следует записать макрос замены.
- В панели разработчика создаем модуль (контейнер) для макроса:
- Кликаем на пиктограмму Visual Basic
- В открывшемся окне кликаем правой кнопкой мыши по книге и выбираем в контекстном меню insert => Module
- Открываем созданный модуль двойным щелчком мыши и записываем в него текст макроса.
Sub Замена_формул()
For Each cell In Selection
cell.Formula = cell.Value
Next
End Sub
Sub Замена_формул() – название макроса;
For Each cell In Selection – цикл повторяющихся действий от первой ячейки до конца выделения;
cell.Formula = cell.Value – действие по замене формулы на значение;
End Sub – конец макроса.
- После записи макроса следует зайти в панели разработчика в список макросов и кликнув по кнопке параметры назначить макросу сочетание клавиш.
Теперь если выделить диапазон с формулами и нажать заданное сочетание клавиш значения выделенных ячеек будут заменены на числа.
После замены формул на значения можно смело удалять промежуточные таблицы (черновики) из отчета .
Видео работы макроса замены формул на значения:
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
Источник
Как быстро заменить формулы на значения в таблице Excel
Часто перед пользователями табличного редактора Эксель встает задача, когда необходимо реализовать замену формул на значения. Осуществить это процедуру можно различными способами. В статье мы разберем множество методов, позволяющих заменить формулу на значения в табличном документе.
Первый метод: стандартная замена формул на значения
Это самый известный и распространенный способ, позволяющий заменить формулы на значения. Подробная инструкция выглядит так:
- Первоначально производим выделение того диапазона данных, в котором мы желаем реализовать замену формул на значения.
- Реализуем копирование данных. Для этого нажимаем правой клавишей мышки по выбранному диапазону и в контекстном меню кликаем на элемент «Копировать». Альтернативный вариант – использование комбинации клавиш «Ctrl+C».
- Кликаем ПКМ по выбранному диапазону. Здесь можно выбрать иконку под названием «Значения».
- Следует навести мышку на элемент «Специальная вставка», чтобы раскрыть перечень функций.
- Здесь располагаются все возможные вариации вставки значений с сохранностью форматирования исходных ячеек.
Стоит отметить, что в ранних версиях табличного редактора отсутствуют такие дополнительные значки, поэтому все операции производятся через такое окно:
Второй метод: использование горячих клавиш табличного редактора
Все вышеприведенные манипуляции можно реализовать при помощи специальных горячих клавиш табличного редактора. Подробная инструкция выглядит так:
- Реализуем копирование нужного диапазона при помощи комбинации клавиш «Ctrl+C».
- Сюда же осуществляем обратную вставку при помощи комбинации клавиш «Ctrl+V».
- Щелкаем на «Ctrl», чтобы отобразить небольшое меню, в котором будут предложены вариации вставки.
- Щёлкаем на «З» на русской раскладке или же используем стрелочки для выбора параметра «Значения». Осуществляем подтверждение всех проделанных действий при помощи клавиши «Enter», расположенной на клавиатуре.
Третий метод: замена при помощи мышки
Этот метод позволяет осуществить процедуру замены формул на значения намного быстрее вышеприведенных методов. Здесь используется только компьютерная мышка. Подробная инструкция выглядит так:
- Производим выделение ячеек с формулами на рабочем листе табличного документа.
- Беремся за рамку выделенного фрагмента и, зажав ПКМ, осуществляем перетаскивание на два см в какую-либо сторону, а затем реализуем возврат на начальную позицию.
- После осуществления этой процедуры отобразилось небольшое специальное контекстное меню, в котором необходимо выбрать элемент, имеющий наименование «Копировать только значения».
Четвертый метод: применение специальной кнопки для вставки значений
Значительно ускорить процедуру специальной вставки можно при помощи добавления специальной кнопки «Вставить как значения» на панель быстрого доступа. Подробная инструкция по добавлению и использованию выглядит так:
- Передвигаемся в подраздел «Файл».
- Выбираем элемент, имеющий наименование «Параметры».
- Щёлкаем левой клавишей мышки на «Панель быстрого доступа».
- На экране отобразилось окошко, в котором можно добавить разнообразные элементы на панель быстрого доступа. Раскрываем перечень под названием «Все команды».
- В раскрывшемся перечне находим элемент под названием «Вставить значения» и добавляем его на панель быстрого доступа при помощи кнопки «Добавить».
- Готово! Мы добавили эту кнопку на панель быстрого доступа.
- Теперь остается только скопировать диапазон ячеек, в котором располагаются необходимые нам формулы, а затем нажать на только что добавленную кнопку на панели быстрого доступа.
Стоит заметить, что стандартно всем кнопку на панели быстрого доступа задается комбинация клавиш «Alt+цифра». После клика на «Alt» на верхней панели покажется цифра, обозначающая эту кнопку.
Пятый метод: использование специальных макросов
Использование макросов – самый быстрый способ, позволяющий заменить формулы на значения. Так выглядит макрос, позволяющий заменить все формулы на значения в выбранном диапазоне:
Так выглядит макрос, позволяющий заменить все формулы на значения на выбранном рабочем листике табличного документа:
Так выглядит макрос, позволяющий заменить все формулы на значения на всех рабочих листиках табличного документа:
Подробная инструкция по использованию макросов выглядит так:
- При помощи комбинации клавиш «Alt+F11» открываем редактор VBA.
- Открываем подраздел «Insert», а затем жмем левой клавишей мышки по элементу «Module».
- Сюда мы вставляем один из вышеприведенных кодов.
- Запуск пользовательских макросов осуществляется через подраздел «Макросы», располагающийся в разделе «Разработчик». Альтернативный вариант – использование комбинации клавиш «Alt+F8» на клавиатуре.
- Макросы работают в любом табличном документе.
Стоит помнить, что манипуляции, реализованные при помощи макроса, нельзя отменить.
Заключение и выводы о быстрой замене формул на значения в табличном документе
Мы выяснили, что существует множество вариантов, позволяющих реализовать замену формул на значения в табличном документе. Реализовать эту процедуру можно при помощи специальной вставки, комбинаций клавиш, компьютерной мышки, персональных макросов и специальной кнопки, добавляемой на панель быстрого доступа. Каждый метод имеет свои преимущества и недостатки. Пользователь может самостоятельно подобрать для себя наиболее удобный и быстрый метод, позволяющий реализовать замену формул на значения в табличном документе.
Источник
Преобразование формул в значения
Формулы – это хорошо. Они автоматически пересчитываются при любом изменении исходных данных, превращая Excel из «калькулятора-переростка» в мощную автоматизированную систему обработки поступающих данных. Они позволяют выполнять сложные вычисления с хитрой логикой и структурой. Но иногда возникают ситуации, когда лучше бы вместо формул в ячейках остались значения. Например:
- Вы хотите зафиксировать цифры в вашем отчете на текущую дату.
- Вы не хотите, чтобы клиент увидел формулы, по которым вы рассчитывали для него стоимость проекта (а то поймет, что вы заложили 300% маржи на всякий случай).
- Ваш файл содержит такое больше количество формул, что Excel начал жутко тормозить при любых, даже самых простых изменениях в нем, т.к. постоянно их пересчитывает (хотя, честности ради, надо сказать, что это можно решить временным отключением автоматических вычислений на вкладке Формулы – Параметры вычислений).
- Вы хотите скопировать диапазон с данными из одного места в другое, но при копировании «сползут» все ссылки в формулах.
В любой подобной ситуации можно легко удалить формулы, оставив в ячейках только их значения. Давайте рассмотрим несколько способов и ситуаций.
Способ 1. Классический
Этот способ прост, известен большинству пользователей и заключается в использовании специальной вставки:
- Выделите диапазон с формулами, которые нужно заменить на значения.
- Скопируйте его правой кнопкой мыши – Копировать(Copy) .
- Щелкните правой кнопкой мыши по выделенным ячейкам и выберите либо значок Значения (Values) :
либо наведитесь мышью на команду Специальная вставка (Paste Special) , чтобы увидеть подменю:
Из него можно выбрать варианты вставки значений с сохранением дизайна или числовых форматов исходных ячеек.
В старых версиях Excel таких удобных желтых кнопочек нет, но можно просто выбрать команду Специальная вставка и затем опцию Значения (Paste Special — Values) в открывшемся диалоговом окне:
Способ 2. Только клавишами без мыши
При некотором навыке, можно проделать всё вышеперечисленное вообще на касаясь мыши:
- Копируем выделенный диапазон Ctrl + C
- Тут же вставляем обратно сочетанием Ctrl + V
- Жмём Ctrl , чтобы вызвать меню вариантов вставки
- Нажимаем клавишу с русской буквой З или используем стрелки, чтобы выбрать вариант Значения и подтверждаем выбор клавишей Enter :
Способ 3. Только мышью без клавиш или Ловкость Рук
Этот способ требует определенной сноровки, но будет заметно быстрее предыдущего. Делаем следующее:
- Выделяем диапазон с формулами на листе
- Хватаем за край выделенной области (толстая черная линия по периметру) и, удерживая ПРАВУЮ клавишу мыши, перетаскиваем на пару сантиметров в любую сторону, а потом возвращаем на то же место
- В появившемся контекстном меню после перетаскивания выбираем Копировать только значения (Copy As Values Only) .
После небольшой тренировки делается такое действие очень легко и быстро. Главное, чтобы сосед под локоть не толкал и руки не дрожали 😉
Способ 4. Кнопка для вставки значений на Панели быстрого доступа
Ускорить специальную вставку можно, если добавить на панель быстрого доступа в левый верхний угол окна кнопку Вставить как значения. Для этого выберите Файл — Параметры — Панель быстрого доступа (File — Options — Customize Quick Access Toolbar) . В открывшемся окне выберите Все команды (All commands) в выпадающем списке, найдите кнопку Вставить значения (Paste Values) и добавьте ее на панель:
Теперь после копирования ячеек с формулами будет достаточно нажать на эту кнопку на панели быстрого доступа:
Кроме того, по умолчанию всем кнопкам на этой панели присваивается сочетание клавиш Alt + цифра (нажимать последовательно). Если нажать на клавишу Alt , то Excel подскажет цифру, которая за это отвечает:
Способ 5. Макросы для выделенного диапазона, целого листа или всей книги сразу
Если вас не пугает слово «макросы», то это будет, пожалуй, самый быстрый способ.
Макрос для превращения всех формул в значения в выделенном диапазоне (или нескольких диапазонах, выделенных одновременно с Ctrl) выглядит так:
Если вам нужно преобразовать в значения текущий лист, то макрос будет таким:
И, наконец, для превращения всех формул в книге на всех листах придется использовать вот такую конструкцию:
Код нужных макросов можно скопировать в новый модуль вашего файла (жмем Alt + F11 чтобы попасть в Visual Basic, далее Insert — Module). Запускать их потом можно через вкладку Разработчик — Макросы (Developer — Macros) или сочетанием клавиш Alt + F8 . Макросы будут работать в любой книге, пока открыт файл, где они хранятся. И помните, пожалуйста, о том, что действия выполненные макросом невозможно отменить — применяйте их с осторожностью.
Способ 6. Для ленивых
Если ломает делать все вышеперечисленное, то можно поступить еще проще — установить надстройку PLEX, где уже есть готовые макросы для конвертации формул в значения и делать все одним касанием мыши:
- всё будет максимально быстро и просто
- можно откатить ошибочную конвертацию отменой последнего действия или сочетанием Ctrl + Z как обычно
- в отличие от предыдущего способа, этот макрос корректно работает, если на листе есть скрытые строки/столбцы или включены фильтры
- любой из этих команд можно назначить любое удобное вам сочетание клавиш в Диспетчере горячих клавиш PLEX
Источник
Преобразование формул в значения
Формулы – это хорошо. Они автоматически пересчитываются при любом изменении исходных данных, превращая Excel из «калькулятора-переростка» в мощную автоматизированную систему обработки поступающих данных. Они позволяют выполнять сложные вычисления с хитрой логикой и структурой. Но иногда возникают ситуации, когда лучше бы вместо формул в ячейках остались значения. Например:
- Вы хотите зафиксировать цифры в вашем отчете на текущую дату.
- Вы не хотите, чтобы клиент увидел формулы, по которым вы рассчитывали для него стоимость проекта (а то поймет, что вы заложили 300% маржи на всякий случай).
- Ваш файл содержит такое больше количество формул, что Excel начал жутко тормозить при любых, даже самых простых изменениях в нем, т.к. постоянно их пересчитывает (хотя, честности ради, надо сказать, что это можно решить временным отключением автоматических вычислений на вкладке Формулы – Параметры вычислений).
- Вы хотите скопировать диапазон с данными из одного места в другое, но при копировании «сползут» все ссылки в формулах.
В любой подобной ситуации можно легко удалить формулы, оставив в ячейках только их значения. Давайте рассмотрим несколько способов и ситуаций.
Способ 1. Классический
Этот способ прост, известен большинству пользователей и заключается в использовании специальной вставки:
- Выделите диапазон с формулами, которые нужно заменить на значения.
- Скопируйте его правой кнопкой мыши – Копировать (Copy).
- Щелкните правой кнопкой мыши по выделенным ячейкам и выберите либо значок Значения (Values):
либо наведитесь мышью на команду Специальная вставка (Paste Special), чтобы увидеть подменю:
Из него можно выбрать варианты вставки значений с сохранением дизайна или числовых форматов исходных ячеек.В старых версиях Excel таких удобных желтых кнопочек нет, но можно просто выбрать команду Специальная вставка и затем опцию Значения (Paste Special — Values) в открывшемся диалоговом окне:
Способ 2. Только клавишами без мыши
При некотором навыке, можно проделать всё вышеперечисленное вообще на касаясь мыши:
- Копируем выделенный диапазон Ctrl+C
- Тут же вставляем обратно сочетанием Ctrl+V
- Жмём Ctrl, чтобы вызвать меню вариантов вставки
- Нажимаем клавишу с русской буквой З или используем стрелки, чтобы выбрать вариант Значения и подтверждаем выбор клавишей Enter:
Способ 3. Только мышью без клавиш или Ловкость Рук
Этот способ требует определенной сноровки, но будет заметно быстрее предыдущего. Делаем следующее:
- Выделяем диапазон с формулами на листе
- Хватаем за край выделенной области (толстая черная линия по периметру) и, удерживая ПРАВУЮ клавишу мыши, перетаскиваем на пару сантиметров в любую сторону, а потом возвращаем на то же место
- В появившемся контекстном меню после перетаскивания выбираем Копировать только значения (Copy As Values Only).
После небольшой тренировки делается такое действие очень легко и быстро. Главное, чтобы сосед под локоть не толкал и руки не дрожали
Способ 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, где уже есть готовые макросы для конвертации формул в значения и делать все одним касанием мыши:
В этом случае:
- всё будет максимально быстро и просто
- можно откатить ошибочную конвертацию отменой последнего действия или сочетанием Ctrl+Z как обычно
- в отличие от предыдущего способа, этот макрос корректно работает, если на листе есть скрытые строки/столбцы или включены фильтры
- любой из этих команд можно назначить любое удобное вам сочетание клавиш в Диспетчере горячих клавиш PLEX
Ссылки по теме
- Что такое макросы, как их использовать, копировать и запускать
- Как скопировать формулы без сдвига ссылок
- Как считать в Excel без формул
This macro will convert every formula in an entire workbook into its respective value. This is basically a quick way to replace to do a copy-paste values except that nothing is moved or re-arranged. Just make sure to remember that this one will not only work on the active sheet, but on the entire open workbook. This is a good thing to use if you are distributing your workbook and you don’t want the recipients to know how you did something or where certain numbers came from.
Where to install the macro: Module
Replace Formulas with Values (Entire Workbook)
Sub FormulasToValues_EntireWorkbook()
'This Macro will replace all formulas from an entire workbook
'with their respective values. It will just changes all
'formulas to values.
WCount = Worksheets.Count
For i = 1 To WCount
If Worksheets(WCount - i + 1).Visible Then
Worksheets(WCount - i + 1).Select
RCount = ActiveCell.SpecialCells(xlLastCell).Row
CCount = ActiveCell.SpecialCells(xlLastCell).Column
For j = 1 To RCount
For k = 1 To CCount
Worksheets(WCount - i + 1).Cells(j, k) = Worksheets(WCount - i + 1).Cells(j, k).Value
Next k
Next j
End If
Next i
End Sub
Excel VBA Course — From Beginner to Expert
200+ Video Lessons
50+ Hours of Instruction
200+ Excel Guides
Become a master of VBA and Macros in Excel and learn how to automate all of your tasks in Excel with this online course. (No VBA experience required.)
View Course
Similar Content on TeachExcel
Print Preview Screen Display for The Entire Workbook in Excel
Macro: This free Excel macro allows you to quickly and easily display the print preview windo…
Using Formulas with Tables in Excel
Tutorial:
Easy way to reference data tables and make formulas within a data table. This allows you …
Stop Formula Calculation in Excel — Increase Worksheet Performance
Tutorial:
I’ll show you how to stop formulas and functions from performing their calculations and u…
Print Entire Workbook in Excel
Macro: This free excel macro allows you to print the entire workbook in Excel. You can easil…
List all Conditional Formatting Formulas in Excel
Tutorial: List all conditional formatting formulas in a worksheet in Excel.
This allows you to quick…
Email the Entire Workbook as a PDF Attachment
: How to convert the entire Excel workbook into a PDF and email it as an attachment….
How to Install the Macro
- Select and copy the text from within the grey box above.
- Open the Microsoft Excel file in which you would like the Macro to function.
- Press «Alt + F11» — This will open the Visual Basic Editor — Works for all Excel Versions.
Or For other ways to get there, Click Here. - On the new window that opens up, go to the left side where the vertical pane is located. Locate your Excel file; it will be called VBAProject (YOUR FILE’S NAME HERE) and click this.
- If the Macro goes in a Module, Click Here, otherwise continue to Step 8.
- If the Macro goes in the Workbook or ThisWorkbook, Click Here, otherwise continue to Step 8.
- If the Macro goes in the Worksheet Code, Click Here, otherwise continue to Step 8.
- Close the Microsoft Visual Basic Editor window and save the Excel file. When you close the Visual Basic Editor window, the regular Excel window will not close.
- You are now ready to run the macro.
На чтение 4 мин Опубликовано 25.01.2021
Часто перед пользователями табличного редактора Эксель встает задача, когда необходимо реализовать замену формул на значения. Осуществить это процедуру можно различными способами. В статье мы разберем множество методов, позволяющих заменить формулу на значения в табличном документе.
Содержание
- Первый метод: стандартная замена формул на значения
- Второй метод: использование горячих клавиш табличного редактора
- Третий метод: замена при помощи мышки
- Четвертый метод: применение специальной кнопки для вставки значений
- Пятый метод: использование специальных макросов
- Заключение и выводы о быстрой замене формул на значения в табличном документе
Первый метод: стандартная замена формул на значения
Это самый известный и распространенный способ, позволяющий заменить формулы на значения. Подробная инструкция выглядит так:
- Первоначально производим выделение того диапазона данных, в котором мы желаем реализовать замену формул на значения.
- Реализуем копирование данных. Для этого нажимаем правой клавишей мышки по выбранному диапазону и в контекстном меню кликаем на элемент «Копировать». Альтернативный вариант – использование комбинации клавиш «Ctrl+C».
- Кликаем ПКМ по выбранному диапазону. Здесь можно выбрать иконку под названием «Значения».
- Следует навести мышку на элемент «Специальная вставка», чтобы раскрыть перечень функций.
- Здесь располагаются все возможные вариации вставки значений с сохранностью форматирования исходных ячеек.
Стоит отметить, что в ранних версиях табличного редактора отсутствуют такие дополнительные значки, поэтому все операции производятся через такое окно:
Второй метод: использование горячих клавиш табличного редактора
Все вышеприведенные манипуляции можно реализовать при помощи специальных горячих клавиш табличного редактора. Подробная инструкция выглядит так:
- Реализуем копирование нужного диапазона при помощи комбинации клавиш «Ctrl+C».
- Сюда же осуществляем обратную вставку при помощи комбинации клавиш «Ctrl+V».
- Щелкаем на «Ctrl», чтобы отобразить небольшое меню, в котором будут предложены вариации вставки.
- Щёлкаем на «З» на русской раскладке или же используем стрелочки для выбора параметра «Значения». Осуществляем подтверждение всех проделанных действий при помощи клавиши «Enter», расположенной на клавиатуре.
Третий метод: замена при помощи мышки
Этот метод позволяет осуществить процедуру замены формул на значения намного быстрее вышеприведенных методов. Здесь используется только компьютерная мышка. Подробная инструкция выглядит так:
- Производим выделение ячеек с формулами на рабочем листе табличного документа.
- Беремся за рамку выделенного фрагмента и, зажав ПКМ, осуществляем перетаскивание на два см в какую-либо сторону, а затем реализуем возврат на начальную позицию.
- После осуществления этой процедуры отобразилось небольшое специальное контекстное меню, в котором необходимо выбрать элемент, имеющий наименование «Копировать только значения».
Четвертый метод: применение специальной кнопки для вставки значений
Значительно ускорить процедуру специальной вставки можно при помощи добавления специальной кнопки «Вставить как значения» на панель быстрого доступа. Подробная инструкция по добавлению и использованию выглядит так:
- Передвигаемся в подраздел «Файл».
- Выбираем элемент, имеющий наименование «Параметры».
- Щёлкаем левой клавишей мышки на «Панель быстрого доступа».
- На экране отобразилось окошко, в котором можно добавить разнообразные элементы на панель быстрого доступа. Раскрываем перечень под названием «Все команды».
- В раскрывшемся перечне находим элемент под названием «Вставить значения» и добавляем его на панель быстрого доступа при помощи кнопки «Добавить».
- Готово! Мы добавили эту кнопку на панель быстрого доступа.
- Теперь остается только скопировать диапазон ячеек, в котором располагаются необходимые нам формулы, а затем нажать на только что добавленную кнопку на панели быстрого доступа.
Стоит заметить, что стандартно всем кнопку на панели быстрого доступа задается комбинация клавиш «Alt+цифра». После клика на «Alt» на верхней панели покажется цифра, обозначающая эту кнопку.
Пятый метод: использование специальных макросов
Использование макросов – самый быстрый способ, позволяющий заменить формулы на значения. Так выглядит макрос, позволяющий заменить все формулы на значения в выбранном диапазоне:
Так выглядит макрос, позволяющий заменить все формулы на значения на выбранном рабочем листике табличного документа:
Так выглядит макрос, позволяющий заменить все формулы на значения на всех рабочих листиках табличного документа:
Подробная инструкция по использованию макросов выглядит так:
- При помощи комбинации клавиш «Alt+F11» открываем редактор VBA.
- Открываем подраздел «Insert», а затем жмем левой клавишей мышки по элементу «Module».
- Сюда мы вставляем один из вышеприведенных кодов.
- Запуск пользовательских макросов осуществляется через подраздел «Макросы», располагающийся в разделе «Разработчик». Альтернативный вариант – использование комбинации клавиш «Alt+F8» на клавиатуре.
- Макросы работают в любом табличном документе.
Стоит помнить, что манипуляции, реализованные при помощи макроса, нельзя отменить.
Заключение и выводы о быстрой замене формул на значения в табличном документе
Мы выяснили, что существует множество вариантов, позволяющих реализовать замену формул на значения в табличном документе. Реализовать эту процедуру можно при помощи специальной вставки, комбинаций клавиш, компьютерной мышки, персональных макросов и специальной кнопки, добавляемой на панель быстрого доступа. Каждый метод имеет свои преимущества и недостатки. Пользователь может самостоятельно подобрать для себя наиболее удобный и быстрый метод, позволяющий реализовать замену формул на значения в табличном документе.
Оцените качество статьи. Нам важно ваше мнение:
0 / 0 / 0 Регистрация: 23.09.2011 Сообщений: 61 |
|
1 |
|
03.09.2012, 00:55. Показов 28842. Ответов 15
Доброго времени суток ! На листе Excel 2003 имеет несколько тысяч формул типа Код ='C: Budget- 2013[Co-Financing17.xls]1.1'!$AR$10 ='C: Budget- 2013[Co-Financing17.xls]1.1'!$AА$10 ='C: Budget- 2013[Co-Financing17.xls]1.1'!$AB$10 ='C: Budget- 2013[Co-Financing17.xls]1.1'!$AC$105 ='C: Budget- 2013[Co-Financing17.xls]1.1'!$AC$109 итд. Нужно через автозамену (заменить все) заменить последнюю цифру во всех формулах, которые заканчиваются на 10 — в даном примере на 14 например, однако через автозамену это сделать не получается, так как $105, $109 также меняется на $145, $149, так как присутствует $10. Как сделать, чтобы замена не происходила в тех числах, которые состоят «визуально» в т.ч. и из заменяемого числа. Благодарю и низко кланяюсь..
0 |
Alex77755 11482 / 3773 / 677 Регистрация: 13.02.2009 Сообщений: 11,145 |
||||
03.09.2012, 08:58 |
2 |
|||
Несколько тысяч ссылок!!!
2 |
Заблокирован |
||||
03.09.2012, 10:08 |
3 |
|||
Alex77755, 3-я строка
иначе для подобных случаев с Replace результат м.б. непредсказуем =’C: Budget- 2010[Co-Financing10.xls]1.1′!$AR$10 Результат
2 |
11482 / 3773 / 677 Регистрация: 13.02.2009 Сообщений: 11,145 |
|
03.09.2012, 10:10 |
4 |
Согласен
1 |
0 / 0 / 0 Регистрация: 23.09.2011 Сообщений: 61 |
|
03.09.2012, 13:00 [ТС] |
5 |
Здорово..А можно было бы кнопку сделать де указываем число, которое надо заменить и число на которое надо сделать замену ? Добавлено через 32 минуты
Здорово..А можно было бы кнопку сделать де указываем число, которое надо заменить и число на которое надо сделать замену ? P.S.не запускается макрос, требует объект «object required»
0 |
Казанский 15136 / 6410 / 1730 Регистрация: 24.09.2011 Сообщений: 9,999 |
||||||||
03.09.2012, 13:11 |
6 |
|||||||
Добавлено через 5 минут
1 |
Alex77755 11482 / 3773 / 677 Регистрация: 13.02.2009 Сообщений: 11,145 |
||||||||
03.09.2012, 13:24 |
7 |
|||||||
Добавлено через 4 минуты
0 |
15136 / 6410 / 1730 Регистрация: 24.09.2011 Сообщений: 9,999 |
|
03.09.2012, 14:32 |
8 |
Все-таки важно пробегать циклом только по ячейкам с формулами, иначе константы тоже будут заменяться, например 910 на 914.
1 |
Alex77755 11482 / 3773 / 677 Регистрация: 13.02.2009 Сообщений: 11,145 |
||||
03.09.2012, 14:43 |
9 |
|||
Казанский,
0 |
Казанский 15136 / 6410 / 1730 Регистрация: 24.09.2011 Сообщений: 9,999 |
||||||||
03.09.2012, 14:51 |
10 |
|||||||
Проще
Но я же приводил выше код для цикла по ячейкам с формулами — меньше работы:
2 |
0 / 0 / 0 Регистрация: 23.09.2011 Сообщений: 61 |
|
03.09.2012, 15:37 [ТС] |
11 |
Не работает кнопка в моем Excel 2003. Выдает ошибку типа нарушения в » Advanced Find and Replace» Able bits.com и предлагает купить эту программку и инсталлировать ее… Как этот скрипт переписать в просто в макрос.. без кнопки тогда ? Действительно, как написал товрищ, скрипт меняет в том числе и то, что менять НЕ требуется, как раз, как в примере, который он привел.. И еще на один момент обратил внимание..если надо заменить ОДНОЗНАЧНОЕ число например 9 на 13,то замена не производится .. Скрипт начинает считать и довольно быстро завершается, но ошибку не выдает, может что-то и меняет (сразу не определишь -большой массив), но полноценной замены не производится..во всех тех местах, где это требуется..
0 |
Alex77755 11482 / 3773 / 677 Регистрация: 13.02.2009 Сообщений: 11,145 |
||||
03.09.2012, 15:53 |
12 |
|||
Проверял в своём 2003. как написал товрищ, скрипт меняет в том числе и то, что менять НЕ требуется Проверяет и меняет только последние символы в количестве равном количесву символов в первом числе на второе число. Меняет только в формулах. Переделать в макрос? Легко!
1 |
Dmitrii 2617 / 547 / 109 Регистрация: 21.03.2012 Сообщений: 1,051 |
||||
03.09.2012, 16:36 |
13 |
|||
Регулярные выражения должны сработать быстрее, чем строковые функции. Пример:
1 |
15136 / 6410 / 1730 Регистрация: 24.09.2011 Сообщений: 9,999 |
|
03.09.2012, 17:12 |
14 |
И что, если заменять нечего, все равно присваивать формулу? Тогда уж .Test допишите.
1 |
0 / 0 / 0 Регистрация: 23.09.2011 Сообщений: 61 |
|
03.09.2012, 18:23 [ТС] |
15 |
Рябята..вроде зработало..Щас еще поизучаю и наишу.. респект и уважуха..!!!!!!
0 |
2617 / 547 / 109 Регистрация: 21.03.2012 Сообщений: 1,051 |
|
03.09.2012, 22:48 |
16 |
Казанский, это лишь пример.
0 |
Добрый день! Сделал файл,в нем 5 колонок по 100 строк с формулами. Но когда все 500 формул на листе,все начинает тормозить (в том числе и макросы),а у меня будет 5 таких листов.. Возможно ли заменить формулы макросом,и если да- помогите пожалуйста.. Спасибо.
ЦитироватьНо когда все 500 формул на листе,все начинает тормозить
А чего Вы хотели? Когда у Вас ссылки на весь столбец, да еще в 2007. Предлагаю не писать макрос (хотя, если так хочется, то не вопрос — только скажите), а сделать полегче формулы. А для большей реалистичности положите сюда Ваш файлик без формул, но с максимально заполненным листом Б (я понимаю, что там данные будут дописываться, но все равно — строк 1000 у Вас уже есть?)
Скажи мне, кудесник, любимец ба’гов…
Яндекс-деньги: 41001632713405
Webmoney: R289877159277; Z102172301748; E177867141995
Добрый день _Boroda_. Спасибо что откликнулись и помогли! Вы правы,что-то я разогнался с диапазонами ,сократил до 1000 строк. Сделал пока 1 лист,вроде полегчало:) посмотрим что будет с 5 листами.. А на счет формулы не знаю,может не идеал,слепил из того что есть в Excel 2007..
Используйте динамические диапазоны
Скажи мне, кудесник, любимец ба’гов…
Яндекс-деньги: 41001632713405
Webmoney: R289877159277; Z102172301748; E177867141995
Это как? ???Я только учусь.. Если можно примерчик..
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…
www.excel-vba.ru
Просто СПАСИБО [+оказать+]
Считаешь СПАСИБО мало? Яндекс.Деньги: 41001332272872; WM: R298726502453
Спасибо. Будем разбираться..