Массовая замена формул - VBA
Формулировка задачи:
есть столбец с формулами, нужно заменить все значения в столбце с "формула" на "формула"*"определённая ячейка" ячейка стационарная.
Решение задачи: «Массовая замена формул»
textual
Листинг программы
Sub FormulaAddV2() Dim c As Range, rngC As Range, rngF As Range Dim s As String 'Ïðîâåðÿåì, Г·ГІГ® âûäåëåГ* èìåГ*Г*Г® äèГ*ГЇГ*çîГ* ГїГ·ГҐГҐГЄ '(Г* Г*ГҐ ãåîìåòðè÷åñêГ*Гї ГґГЁГЈГіГ°Г* èëè äèГ*ГЈГ°Г*ììГ*). If TypeName(Selection) <> "Range" Then MsgBox "Âûäåëèòå äèГ*ГЇГ*çîГ* ГїГ·ГҐГҐГЄ." Exit Sub End If 'Ïîëó÷Г*ГҐГ¬ ïîääèГ*ГЇГ*çîГ*Г», Гў êîòîðûõ ГҐГ±ГІГј ГЄГ®Г*Г±ГІГ*Г*ГІГ*ûå Г§Г*Г*Г·ГҐГ*ГЁГї ëèáî 'ôîðìóëû, ГЁ êîòîðûå ñîäåðæГ*ГІ òîëüêî ÷èñëîâûå Г§Г*Г*Г·ГҐГ*ГЁГї (ГІГ*ГЄ ГЄГ*ГЄ 'ГіГ¬Г*îæГ*ГІГј, Г±ГЄГ*æåì, ñòðîêó "Qwe" Г*Г* ÷èñëî 5 - áåññìûñëåГ*Г®). On Error Resume Next Set rngC = Selection.SpecialCells(xlConstants, xlNumbers) Set rngF = Selection.SpecialCells(xlFormulas, xlNumbers) On Error GoTo 0 'ГЋГЎГ°Г*ГЎГ*òûâГ*ГҐГ¬ ÿ÷åéêè Г± ГЄГ®Г*Г±ГІГ*Г*ГІГ*ûìè Г§Г*Г*Г·ГҐГ*ÿìè. If Not rngC Is Nothing Then For Each c In rngC c.Formula = "=" & c.Value & "*$N$1" Next c End If 'ГЋГЎГ°Г*ГЎГ*òûâГ*ГҐГ¬ ÿ÷åéêè Г± ôîðìóëГ*ìè. If Not rngF Is Nothing Then For Each c In rngF 'Г‡Г*Г*îñèì Гў ïåðåìåГ*Г*ГіГѕ s ôîðìóëó ÿ÷åéêè. s = c.Formula 'Ïîëó÷Г*ГҐГ¬ ôîðìóëó ГЎГҐГ§ Г§Г*Г*ГЄГ* Г°Г*ГўГҐГ*Г±ГІГўГ*. s = Right(s, Len(s) - 1) 'Г‡Г*êëþ÷Г*ГҐГ¬ ôîðìóëó Гў ñêîáêè (ïîòîìó Г·ГІГ® '3+4*5 Г*ГҐ ГҐГ±ГІГј ГІГ® æå Г±Г*ìîå, Г·ГІГ® (3+4)*5). s = "(" & s & ")" 'Г‡Г*Г*îñèì Гў ÿ÷åéêó Г*îâóþ ôîðìóëó. c.Formula = "=" & s & "*$N$1" Next c End If End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д