Страницы: 1
RSS
замена в нескольких местах одновременно
 
Подскажите, возможно есть решение?..
Нужно поменять большое количество формул в книге.
Стандартное средство "Найти и заменить" прекрасно, но работает только по одной условной "строчке": что находим и на что меняем.
В случае необходимости изменения в формулах Excel ругается на некорректную формулу, и ничего дальше не получается...

Вот пример – в рамках большой количества формул в книге надо поменять:
1. ЕСЛИ(ИЛИ(Сводная!$Q$6="Приложение";Сводная!$Q$6="З/п рабочих"); на ничего (пусто)
2. и в хвосте формулы ;"");"") на ;"")

Как быть?..
 
Попробуйте такой макрос.
Не проверял, т.к. нет файла-примера
Код
Option Compare Text

Sub ReplaceFormula()
Dim iCell As Range
Dim iStr1$, iStr2$, fStr$
iStr1 = "ЕСЛИ(ИЛИ(Сводная!$Q$6=""Приложение"";Сводная!$Q$6=""З/п рабочих"");"
iStr2 = ";"""");"""")"
For Each iCell In ActiveSheet.UsedRange.Cells
  If iCell.HasFormula Then
    If iCell.FormulaLocal Like "*" & iStr1 & "*" Then
      fStr = Replace(Replace(iCell.FormulaLocal, iStr1, ""), iStr2, ";"""")")
      iCell.FormulaLocal = fStr
    End If
  End If
Next
End Sub
Согласие есть продукт при полном непротивлении сторон
 
ну For Each iCell In ActiveSheet.UsedRange.Cells можно заменить на область с формулами через SpecialCells

FormulaLocal - лучше избегать в пользу Formula
Если среди формул есть формулы массива, то нужно по иному.

В подавляющем большинстве случаев можно заменить один раз в одной ячейке, а в остальные скопировать по этому на вопрос
Цитата
Antag написал:
Как быть?
ответ - приложить крохотный пример, но отражающий примерную задачу.
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
можно заменить на ... SpecialCells
все время про них забываю
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Sanja написал:
про них забываю
там правдо другая беда, нужно обработать ошибку если нет в диапазоне подходящего.
По вопросам из тем форума, личку не читаю.
 
Можно попробовать сначала заменить "=" на какой-нибудь редкий символ, потом уже проводить все замены. После всех замен обратно заменить символ на равно.
 
Цитата
написал:
ответ - приложить крохотный пример, но отражающий примерную задачу.
Такой подойдёт?
Заранее спасибо.
Страницы: 1
Наверх