首页 > 解决方案 > 使用不同列但相同行中的文本更改多列中公式中的相同文本并在多行中重复此操作

问题描述

我在从 ATE 列到 AVG 列的几列中有公式

这些相同的公式在第 2165 到 2700 行中

所有的公式都有这个文本:ANG

现在,对于上述范围内的每一行 - 我想用在 AVH 列的同一行中找到的不同文本替换 ANG

例如,ATE 到 AVG 列中的第 2165 行中的 ANG(只要有带有 ANG 的公式)将被替换为同一行 2165 中的 AVH 列中的文本 -> 此文本例如是 ABC

然后 ATE 到 AVG 列中的第 2166 行中的 ANG(只要有带有 ANG 的公式)将被替换为同一行 2166 中的 AVH 列中的文本 -> 此文本例如是 DEF

依此类推,直到对最后一行(即第 2700 行)执行相同操作

我发现许多代码(如下所示)将特定值替换为另一个指定值。但是,我想指定或手动选择范围,然后只指定文本 ANG,然后指定 VBA 代码将在其中找到替换文本的列,而不是为代码中的每一行指定实际替换文本

Sub TEST()
Dim c As Range
Application.ScreenUpdating = False
On Error Resume Next
For Each c In Sheets(“Version 3”).Range(ATE2165,AVG2700).SpecialCells(xlFormulas)
   c.Formula = Replace(c.Formula, “ANG, ****so here I’d like the 
     code to find ANG in above range and replace with 3 letters 
     in Column AVH for that same row and continue same for all rows in above range***)
Next c
Application.ScreenUpdating = True
End Sub

标签: excelvba

解决方案


像这样的东西应该工作:

Sub TEST()
    Dim c As Range
    Application.ScreenUpdating = False
    On Error Resume Next
    For Each c In Sheets("Version 3").Range("ATE2165:AVG2700").SpecialCells(xlFormulas)
        c.Formula = Replace(c.Formula, "ANG", c.Parent.Cells(c.Row, "AVH").Value)
    Next c
    Application.ScreenUpdating = True
End Sub

推荐阅读