Заменить формулы на значения excel vba

В данной статье представлены разные варианты макросов для быстрой замены формул на значения в документах 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. Макросы будут работать в любой книге, пока открыт файл, где они хранятся.

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

Содержание

  1. Преобразование формул в значения
  2. Способ 1. Классический
  3. Способ 2. Только клавишами без мыши
  4. Способ 3. Только мышью без клавиш или Ловкость Рук
  5. Способ 4. Кнопка для вставки значений на Панели быстрого доступа
  6. Способ 5. Макросы для выделенного диапазона, целого листа или всей книги сразу
  7. Способ 6. Для ленивых
  8. Как заменить формулу на значение excel vba
  9. Как преобразовать все формулы в диапазоне в значения в Excel
  10. Как макрос работает
  11. Код макроса
  12. Как этот код работает
  13. Как использовать
  14. Замена формулы на значение и обратно. Сохранение формулы в примечаниях. Excel vba

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

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

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

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

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

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

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


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


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

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

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

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

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

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

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

  1. Выделяем диапазон с формулами на листе
  2. Хватаем за край выделенной области (толстая черная линия по периметру) и, удерживая ПРАВУЮ клавишу мыши, перетаскиваем на пару сантиметров в любую сторону, а потом возвращаем на то же место
  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 vba

Модератор форума: китин, _Boroda_

Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос Replace_by_VAL — заменить формулы на значения (Помогите «допилить» макрос, пожалуйста)

Макрос Replace_by_VAL — заменить формулы на значения

Alex_ST Дата: Понедельник, 06.05.2013, 17:09 | Сообщение № 1

[/vba]
Всё работает хорошо пока не выбираю ОДНУ ячейку с формулой.
А вот если выбираю ОДНУ ячейку, то SpecialCells(xlCellTypeFormulas) выбирает ВСЕ ячейки листа, содержащие формулы.
Это вообще-то принцип, часто встречающийся в Excel’e: например, если перед нажатием Ctrl+F был выбран диапазон ячеек, то ищет только в нём, а если одна ячейка — на всём листе.

Всё руки не доходили подправить макрос. Просто выбирал диапазон и всё работало. А тут на днях забыл об этой бяке и тапнул хоткей, выбрав только одну ячейку, где нужно было поменять формулы на значения. Потом сдуру сохранился. и нажил себе гемор восстановить забитые значениями формулы на всём листе.
Поправил попорченный файл. Подумал, что ща на раз-два макрос подправлю, а что-то «не выходит каменный цветок» простыми действиями.
А сильно усложнять не хочется.
Есть у кого-нибудь идеи, как обойти?

[/vba]
Всё работает хорошо пока не выбираю ОДНУ ячейку с формулой.
А вот если выбираю ОДНУ ячейку, то SpecialCells(xlCellTypeFormulas) выбирает ВСЕ ячейки листа, содержащие формулы.
Это вообще-то принцип, часто встречающийся в Excel’e: например, если перед нажатием Ctrl+F был выбран диапазон ячеек, то ищет только в нём, а если одна ячейка — на всём листе.

Всё руки не доходили подправить макрос. Просто выбирал диапазон и всё работало. А тут на днях забыл об этой бяке и тапнул хоткей, выбрав только одну ячейку, где нужно было поменять формулы на значения. Потом сдуру сохранился. и нажил себе гемор восстановить забитые значениями формулы на всём листе.
Поправил попорченный файл. Подумал, что ща на раз-два макрос подправлю, а что-то «не выходит каменный цветок» простыми действиями.
А сильно усложнять не хочется.
Есть у кого-нибудь идеи, как обойти? Alex_ST


С уважением,
Алексей
MS Excel 2003 — the best.

[/vba]
Всё работает хорошо пока не выбираю ОДНУ ячейку с формулой.
А вот если выбираю ОДНУ ячейку, то SpecialCells(xlCellTypeFormulas) выбирает ВСЕ ячейки листа, содержащие формулы.
Это вообще-то принцип, часто встречающийся в Excel’e: например, если перед нажатием Ctrl+F был выбран диапазон ячеек, то ищет только в нём, а если одна ячейка — на всём листе.

Всё руки не доходили подправить макрос. Просто выбирал диапазон и всё работало. А тут на днях забыл об этой бяке и тапнул хоткей, выбрав только одну ячейку, где нужно было поменять формулы на значения. Потом сдуру сохранился. и нажил себе гемор восстановить забитые значениями формулы на всём листе.
Поправил попорченный файл. Подумал, что ща на раз-два макрос подправлю, а что-то «не выходит каменный цветок» простыми действиями.
А сильно усложнять не хочется.
Есть у кого-нибудь идеи, как обойти? Автор — Alex_ST
Дата добавления — 06.05.2013 в 17:09

Источник

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

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

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

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

Код макроса

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

  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. Введите или вставьте код.

Источник

Замена формулы на значение и обратно. Сохранение формулы в примечаниях. Excel vba

Серия функций для Excel:
Сохранение функции в примечании к ячейке при замене на значение.
Восстановление в ячейке сохраненной ранее функции.
Немного сопутствующего сервиса.

Вложение содержит книгу с функциями (открытые тексты vba), гайд по теме, пример оформления меню (ribbon).

—-
Жаль, что вчерашний пост про интерполяцию не вызвал интереса. Попробую эту тему, которой мне реально не хватало.
При всей тривиальности задачи, реализация оказалась не столь примитивной, как ожидалось: по ходу дела обнаружилась пара подводных камней.
Публикую дабы соратники не тратили свое время на «велосипед».

Отзывам был бы по прежнему рад.

Formula-Value.zip (19.1 Кб, 31 просмотров)

28.01.2021, 16:42

#2

28.01.2021, 17:19 #3

28.01.2021, 17:56 #4

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

Источник

Printing values instead of the formulas themselves can help protect your IP or prevent users from changing them. In this article, we’re going to show you how to have Excel convert formula to value using VBA.

How to have Excel convert formula to value

We can check each cell using a For Each…Next loop. Below you will find 3 examples using the loop that check cells in a selected area, in the entire worksheet, and all worksheets in a workbook.

After identifying the cells, we can check whether they contain formulas using the HasFormula property. This returns a Boolean value. If the HasFormula returns TRUE, then our code overwrites the formula by setting the cell value into the Formula property of the cell.

rng.Formula = rng.Value

First, you need to add the module into the workbook or the add-in file. Copy and paste the code into the module to run it. The main advantage of the module method is that it allows saving the code in the file, so that it can be used again later. Furthermore, the subroutines in modules can be used by icons in the menu ribbons or keyboard shortcuts. Remember to save your file in either XLSM or XLAM format to save your VBA code.

Convert formulas to values in a selected range

Sub ConvertFormulasToValuesInSelection()

    Dim rng As Range

    For Each rng In Selection

        If rng.HasFormula Then

            rng.Formula = rng.Value

        End If

    Next rng

End Sub

Convert formulas to values in active worksheet

Sub ConvertFormulasToValuesInActiveWorksheet()

    Dim rng As Range

    For Each rng In ActiveSheet.UsedRange

        If rng.HasFormula Then

            rng.Formula = rng.Value

        End If

    Next rng

End Sub

Convert formulas to values in all worksheets

Sub ConvertFormulasToValuesAllWorksheets()

    Dim ws As Worksheet, rng As Range

    For Each ws In ActiveWorkbook.Worksheets

        For Each rng In ws.UsedRange

            If rng.HasFormula Then

                rng.Formula = rng.Value

            End If

        Next rng

    Next ws

End Sub

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. Введите или вставьте код.

 

Dez089

Пользователь

Сообщений: 17
Регистрация: 10.07.2019

#1

27.03.2021 18:52:05

Доброго времени суток.
Столкнулся с такой проблемой, при использования макроса:

https://www.planetaexcel.ru/techniques/11/215/

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

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

Так же попробовал прописать каждый лист в ручную:

Код
Sheets("Лист1").UsedRange.Value = ActiveSheet.UsedRange.Value
Sheets("Лист3").UsedRange.Value = ActiveSheet.UsedRange.Value

Но при таком раскладе вообще получается не пойми что(значения формул выводит туда, где их даже нет)

Кто-нибудь сталкивался с подобным? Есть ли возможность добавить лист с умной таблицей в «исключения»?

Пример прикрепил.

P.s. Excel 2019 Pro, лицензия.

Прикрепленные файлы

  • Пример.xlsm (18.78 КБ)

 

Kuzmich

Пользователь

Сообщений: 7998
Регистрация: 21.12.2012

#2

27.03.2021 19:42:34

Dez089,
На Лист3 у вас нет умной таблицы, надо вставить
Попробуйте так

Код
Sub Formulas_To_Values_Book()
Dim ws As Worksheet
'преобразование формул в значения во всей книге
    For Each ws In ActiveWorkbook.Worksheets
      If ws.Name <> "Лист1" Then
       ws.Activate
        ActiveSheet.ListObjects(1).DataBodyRange.Copy
        ActiveSheet.ListObjects(1).DataBodyRange(1, 1).PasteSpecial xlPasteValues
      End If
    Next ws
End Sub
 

Dez089

Пользователь

Сообщений: 17
Регистрация: 10.07.2019

Kuzmich,
Да, Ваш макрос работает при условии, что на 3 листе умная таблица.
Однако, я видимо неправильно сформировал ситуацию.

Умная таблица в книге одна и довольно большая, с неё тянуться данные в другие листы. В не табличные формы, в которых происходят различные вычисления.
Вот результаты этих вычислений после выполнения макроса(который в шапке) получаются некорректные(как в файле примере).

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

 

Kuzmich

Пользователь

Сообщений: 7998
Регистрация: 21.12.2012

#4

27.03.2021 20:10:40

Dez089,
Так исключите из вашего макроса лист с умной таблицей

Код
If ws.Name <> "Лист1" And ws.Name <> "Лист2" Then

Изменено: Kuzmich27.03.2021 20:30:30

 

Dez089

Пользователь

Сообщений: 17
Регистрация: 10.07.2019

#5

27.03.2021 20:43:27

Kuzmich,

Код
If ws.Name <> "Лист1" And ws.Name <> "Лист2" Then

Таким образом всё равно необходимо преобразовать таблицу на листе 3 в умную.

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

Отредактировал пример(см. Лист 3).

Прикрепленные файлы

  • Пример 2.xlsm (18.85 КБ)

 

Kuzmich

Пользователь

Сообщений: 7998
Регистрация: 21.12.2012

#6

27.03.2021 20:52:02

Код
Sub Formulas_To_Values_Book_()
Dim ws As Worksheet
'преобразование формул в значения во всей книге
    For Each ws In ActiveWorkbook.Worksheets
    If ws.Name <> "Лист1" And ws.Name <> "Лист2" Then
        ws.UsedRange.Value = ws.UsedRange.Value
    End If
    Next ws
End Sub
 

Dez089

Пользователь

Сообщений: 17
Регистрация: 10.07.2019

#7

27.03.2021 20:54:28

Kuzmich, потрясающие. Низкий поклон и море благодарности!

Like this post? Please share to your friends:
  • Заменить формулу значением значение в excel
  • Заменить формат даты в excel
  • Заменить фон в word
  • Заменить текст во всех файлах word
  • Заменить текст в ячейке на свой excel