Страницы: 1
RSS
Замена части формулы в таблице, Замена части формулы в таблице
 
Добрый день!
Подскажите по решению проблемки.
Дана таблица, где встречается часть формулы: ЕСЛИ($AC$1="ДВС";СУММЕСЛИМН('Расстановка ГШО'!$BI:$BI;'Расстановка ГШО'!$Q:$Q;$C5)/('Расстановка ГШО'!$BI$2-ИНДЕКС('Расстановка ГШО'!$M:$M;ПОИСКПОЗ($C5;'Расстановка ГШО'!$Q:$Q;0)))*($D5-ИНДЕКС('Расстановка ГШО'!$M:$M;ПОИСКПОЗ($C5;'Расстановка ГШО'!$Q:$Q;0)));СУММЕСЛИМН('Расстановка ГШО'!$BJ:$BJ;'Расстановка ГШО'!$Q:$Q;$C5)/('Расстановка ГШО'!$BI$2-ИНДЕКС('Расстановка ГШО'!$M:$M;ПОИСКПОЗ($C5;'Расстановка ГШО'!$Q:$Q;0)))*($D5-ИНДЕКС('Расстановка ГШО'!$M:$M;ПОИСКПОЗ($C5;'Расстановка ГШО'!$Q:$Q;0))))

Мне необходимо заменить часть вот этой формулы на: A2
Как сделать это побыстрому?

в форму CTRL+H не вмещается.
 
добрый день!
через текстовый редактор?
 
nilske, объясните поточнее.
дело в том, что эта часть формулы встречается в нескольких местах таблицы. Бывает даже, что в самой формуле встречается несколько раз
Изменено: kms2020 - 24.04.2024 13:48:49
 
Код
Sub ReplaceFormula()
'Выделите ячейки. Запустите макрос.

    Const formula_was = "ЕСЛИ($AC$1=""ДВС"";СУММЕСЛИМН('Расстановка ГШО'!$BI:$BI;'Расстановка ГШО'!$Q:$Q;$C5)/('Расстановка ГШО'!$BI$2-ИНДЕКС('Расстановка ГШО'!$M:$M;ПОИСКПОЗ($C5;'Расстановка ГШО'!$Q:$Q;0)))*($D5-ИНДЕКС('Расстановка ГШО'!$M:$M;ПОИСКПОЗ($C5;'Расстановка ГШО'!$Q:$Q;0)));СУММЕСЛИМН('Расстановка ГШО'!$BJ:$BJ;'Расстановка ГШО'!$Q:$Q;$C5)/('Расстановка ГШО'!$BI$2-ИНДЕКС('Расстановка ГШО'!$M:$M;ПОИСКПОЗ($C5;'Расстановка ГШО'!$Q:$Q;0)))*($D5-ИНДЕКС('Расстановка ГШО'!$M:$M;ПОИСКПОЗ($C5;'Расстановка ГШО'!$Q:$Q;0))))"
    Const formula_must = "A2"

    Dim Application_Calculation As XlCalculation
    Application_Calculation = Application.Calculation
    Application.Calculation = xlCalculationManual

    Dim cl As Range
    For Each cl In Selection.SpecialCells(xlCellTypeFormulas).Cells
        If InStr(cl.FormulaLocal, formula_was) > 0 Then
            cl.FormulaLocal = Replace(cl.FormulaLocal, formula_was, formula_must)
        End If
    Next
    
    Application.Calculation = Application_Calculation
End Sub
 
День добрый
Цитата
в форму CTRL+H не вмещается
Почему бы не заменить в 2-3 подхода? Т.е. сначала заменить, например, истинный аргумент у ЕСЛИ, далее следующий аргумент, затем - то что осталось?
 
МатросНаЗебре, Спасибо
Страницы: 1
Наверх