动态添加到Excel公式/动态搜索和替换

时间:2017-07-18 12:10:37

标签: excel vba excel-vba excel-formula formula

第一次在这里发帖,很抱歉,如果我错过了什么。如果是这样,请告诉我。

所以,手头的问题: 我有很多公式(数千)我需要更改/添加,但我不确定如何/最聪明的方法是做什么。

所有公式看起来都像:

=C5+D5-S5

但是他们中的一些人在基本公式之后还有一个额外的部分,它可能是多件事,但一个例子是:

=C829+D829-S829 +T834+T835+T835+(T836*2)

或者

=C1101+D1101-S1101 +T1102

我想将基本部分更改为:

=C5+D5+E5+F5+G5+H5-S5

或者

=SUM(C5:H5)-S5

在“-Sx”之后仍保留可能存在的附加部分

我正在使用Excel 2016 64位。 我玩过搜索和替换没有太大的成功。 我有一点使用VBA的经验,所以也许这就是解决这个问题的方法 该公式可能需要在将来再次更改。

1 个答案:

答案 0 :(得分:0)

所以,我想出了如何制作一些能够完成这项工作的VBA--稍微调整一下,如果以后需要,我将能够重复使用它。

感谢您的投入!最终的代码发布在下面。

Sub RPLF()
    Dim idr As Range
    Dim crp As Double
    Dim lrp As Double
    Dim form As String
    Dim newform As String

    crp = 4

    With Worksheets("S-S")
        lrp = .Cells(.Rows.Count, "A").End(xlUp).row
    End With

    For Each idr In Range("A4:" & "A" & lrp)
         crp = crp + 1
         form = Worksheets("S-S").Range("T" & crp).Formula
         newform = Replace(form, "=C" & crp & "+D" & crp & "-S" & crp, "=SUM(C" & crp & ":H" & crp & ")-S" & crp)
         Worksheets("S-S").Range("T" & crp).Formula = newform
    Next
End Sub