Массовая замена формул - 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.5 из 5
Похожие ответы