Подскажите, пожалуйста, код, которым возможно осуществить операцию по замене ТЕКСТА, скажем, например «Информация» на ФОРМУЛУ «=2+2*2». Операция необходимо совершить на всех листах книги ( включая скрытые ) во всех ячейках, содержание которых совпадает с искомым текстом ПОЛНОСТЬЮ. Регистр - неважен. Спасибо!
upd: Макрорекодер сообщаеТ следующее:
Код
Cells.Replace What:="Информация за указанный период", Replacement:= _
"=""Расход топлива за "" & ТЕКСТ(ДАТАМЕС(0;$L$7);""ММММ"") & "" "" & $L$9 & "" г.""" _
, LookAt:=xlPart, SearchOrder:=xlByColumns, MatchCase:=False, _
SearchFormat:=False, ReplaceFormat:=False
При повторном запуске, код не осуществляет никаких действий.
От того, что Вы замените просто текст на текст формулы, в ячейке формула не появится, в ячейке будет ТЕКСТ. Читайте про .Find (.FindNext)
Код
Sub ReText()
Dim iSh As Worksheet
Dim iCl As Range
Dim iFrml$
iFrml = "=СЕГОДНЯ()" 'текст Вашей формулы
For Each iSh In Worksheets
With iSh.UsedRange
Set iCl = .Find("Информация за указанный период", LookIn:=xlValues)
If Not iCl Is Nothing Then
fAdrs = iCl.Address
Do
iCl.FormulaLocal = iFrml
Set iCl = .FindNext(iCl)
If iCl Is Nothing Then GoTo DoneFinding
Loop While iCl.Address <> fAdrs
End If
DoneFinding:
End With
Next
End Sub
Sanja написал: замените просто текст на текст формулы, в ячейке формула не появится
Не согласен. Пишем в ячейке "Информация" и
Код
Sub test()
ActiveCell.Replace "Информация", "=2*2"
End Sub
Появляется формула. Метод Range.Replace производит замену текста в свойстве ячеек Formula, кстати, не обращая внимания на региональные настройки. Этот метод можно использовать и для диапазона скрытого листа.
Что касается #1, то при повторном применении в формуле ячейки уже не будет содержаться текст "Информация", соответственно, и замены не будет.
sokol92, вау. Очистка всех данных листа а быстрее штатной - не проверяли?))
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
это да - можно и косячнуть и во благо использовать (например, для преобразования чисел-как-текст). А ещё нужно помнить, что метод запоминает последние настройки, поэтому прописывать надо все
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄