VBA Excel如何将值的一部分替换为另一个单元格值

时间:2017-04-17 17:58:20

标签: excel vba excel-vba

我希望有一个单元格,有人可以输入公式,然后使用宏自动将该公式中的单词替换为同一张表中的正确数字。

例:
Sheet包含一个单元格(L8),其值为Weight,即10 另一个单元格(L10)具有高度值,比方说20。

现在,如果有人在单元格中输入类似的内容(I27):(高度+ 120)/重量 我希望宏用相应的值替换文本,这样我就可以将该文本用作公式,并在单元格I28中显示结果。

因此,单元格(I27)将显示20 + 120/10,单元格(I28)将输出该公式的结果。

值在列L8-L14中。

我尝试使用我发现的解决方案:

With Range("I27")
    .Replace What:="Weight", _
            Replacement:="", _
            LookAt:=xlPart, _
            SearchOrder:=xlByRows, _
            MatchCase:=False, _
            SearchFormat:=False, _
            ReplaceFormat:=False
End With

我需要以某种方式告诉它从另一个单元格中取代。

我想如果我能让代码工作,我就可以为我想要替换的每个单词复制它(4)然后处理一个解决方案,使用公式将结果输出到它旁边的单元格中

1 个答案:

答案 0 :(得分:3)

使用命名范围

1- Select the menu Formulas --> Name Manager
2- New...--> Name: Weight, RefertTo: =Sheet1!$L$8 -->OK
3- New...--> Name: Height, RefertTo: =Sheet1!$L$10 -->OK

现在,您的单元格L8具有名称"权重"并且您的单元格L10具有名称"高度"。您可以在任何单元格中键入此公式:

 =(Height+120)/Weight

您得到(L10+120)/L8的结果值。

P.S。在第2步和第3步中,将光标放在RefersTo框中,然后单击获取名称的相应单元格,即可更轻松地完成。