Страницы: 1
RSS
Преобразование формул в значения с помощью макроса за исключением формул промежуточные итоги
 
Доброго дня!
Прошу помочь доработать макрос ниже.
Нужно в выделенном диапазоне преобразовать формулы в значения, кроме формул промежуточные итоги.
Код
Sub Formulas_To_Values_Selection()
'преобразование формул в значения в выделенном диапазоне(ах)
    Dim smallrng As Range
    For Each smallrng In Selection.Areas
        smallrng.Value = smallrng.Value
    Next smallrng
End Sub
Sergey
 
Если используется цикл  For Each, то самый простой вариант - проверять ячейку на наличие в ней формулы с ПРОМЕЖУТОЧНЫЕ.ИТОГИ.
Примерно так.
Код
Sub Formulas_To_Values_Selection()
' преобразование формул, кроме Промежуточные.итоги, в значения в выделенном диапазоне
    Dim smallrng As Range
    For Each smallrng In Selection.Areas
        if not InStr(1, smallrng.Formula, "=subtotal(", vbTextCompare)>0 then
        smallrng.Value = smallrng.Value
        end if
    next
End Sub 
       
 
tolikt, c одной существенной поправочкой что перебор нужно не областей а ячеек
Код
 For Each smallrnп In Selection

ну и конечно придушить пересчеты и обновления экрана для скорости.
По вопросам из тем форума, личку не читаю.
 
 tolikt, БМВ,
спасибо большое!
Sergey
 
Цитата
БМВ написал:
ну и конечно придушить пересчеты
Добрый вечер! скажите пожалуйста, как можно придушить пересчеты, что нужно дописать ?
 
отключить автоматический пересчёт формул в Excel
Код
Application.Calculation = xlCalculationManual

включить автоматический пересчёт формул в Excel
Код
Application.Calculation = xlCalculationAutomatic
Изменено: New - 15.05.2021 16:25:57
 
Спасибо!!!
Страницы: 1
Читают тему
Наверх