Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Преобразовать формулы в значения во всей книге
 
Доброго времени суток, подскажите макрос для преобразования формул в значения во всей книге. Нашел пример, где есть подсказка но к сожалению надо имена каждой страницы в макрос вводить (https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=8&TID=11832). Подскажите как можно одним кодом преобразовать всю книгу. Спасибо.
 
Ov198, Вариант

Код
Sub Макрос()
For Each Sh In ThisWorkbook.Worksheets
    With Sh.UsedRange
        .Value = .Value
    End With
Next
End Sub
Изменено: Александр П. - 7 Сен 2018 07:16:44
 
Александр П., Спасибо. Сейчас попробую.
 
Александр П., процедура пишет что из-за сводных таблиц, такое действие не приемлемо. Попробовал перезаписать код таким образом. (Только учусь). Подскажите как можно его записать для определенных страниц. Или это не так не пишется))
Код
Sub Макрос()

Thi = Sheets(Array("БД 1", "БД 2", "БД 3", _
        "БД (свод)"))
        Sh.UsedRange.Value = Sh.UsedRange.Value
    For Each Sh In Thi
    With Sh
        Sh.UsedRange.Value = Sh.UsedRange.Value
    End With
Next
End Sub

К сожалению файл не могу прикрепить.
 
Ov198, Оформите код соответствующими тэгами, возьмите код из сообщения 2 и выполните его в своей книге БЕЗ изменений...
Со сводными да, будут проблемы, однако нужно сразу оговаривать такие вещи  :)

Сейчас нет времени, подождите, либо позже я отвечу, либо кто то другой поможет.
Изменено: Александр П. - 7 Сен 2018 07:56:15
 
Александр П., Еще раз спасибо. Если знать какие листы именно нужны, как перечислить их в коде?! У меня явно не получается = ) Допустим название нужных листом "БД 1", "БД2" и "БД свод" . Спасибо. Если подскажите очень выручите.  
 
Ov198, например так цикл пройдет только по листам, названия которых в массиве ShNames.
Код
ShNames = array("название листа 1","название листа 2","название листа 3")
For i = lbound(ShNames) to ubound(ShNames)
sheets(ShNames(i)).usedrange.value = sheets(ShNames(i)).usedrange.value
Next i
 
Александр П., Спасибо огромное!)
 
Цитата
Александр П.: цикл пройдет только по листам, названия которых в массиве ShNames
листов со сводными, как правило, меньше, чем других, поэтому проще сделать массив листов, которые НЕ обрабатывать. Но это так - косметика  :)
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
 
Jack Famous,какой вопрос - такой ответ
Цитата
Ov198 написал:
Если знать какие листы именно нужны, как перечислить их в коде?!
 
Цитата
Александр П.: какой вопрос - такой ответ
невнимательный я - прошу прощения  :)
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Страницы: 1
Читают тему (гостей: 1)
Наверх