2017-04-17 80 views
1

我想要一个单元格,其中某人可以输入一个公式,然后使用宏自动替换该公式中的单词与正确的编号同一张纸。VBA Excel如何用另一个单元格值替换值的一部分

实施例:
片材含有细胞(L8)与值重量,让说其10 另一个细胞(L10)具有用于高度的值,可以说20.

现在,如果有人类型在单元格(I27)中是这样的:(Height + 120)/ Weight 我希望宏将其文本替换为相应的值,以便我可以将该文本用作公式并在单元格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),然后解决方案使用该公式在单元格旁边输出结果它。

+0

为什么要替换单词?为什么不给L8命名为“Weight”,而L10的名称是“Height”。那么'=(Height + 120)/ Weight'的公式是有效的,并计算出你想要的答案。 – YowE3K

+0

我不确定我是否正确理解你。我需要以某种方式告诉excel,当有人在那个单元格中输入那些特定的单词时,他们实际上应该是在另一个地方找到的值。我只是想绕过手动查找和输入这些值,因为公式不会保持不变,并且最终不得不经常这样做。此外,这些值正在计算,所以他们一直在改变。 dot.Py的解决方案已经帮助我了,现在我可以替换它了,现在我要做的就是将这个“已转换”的单元格用作另一个单元格的公式。 – ManWithManyCheeses

+0

这是否适用于某种考试情境,例如,您要求诸如“您将如何计算某某事”以及该人将其“答案”作为“公式”输入,然后运行该宏以生成结果他们的答案?或者你只是想让用户在他们的公式中使用名称“Weight”和“Height”(等)而不是“L8”和“L10”(等等),以使他们的公式更加“有意义”?如果是后者,只需命名单元格。 (即使是前者,也可以命名单元格,然后将I28计算为'Range(“I28”)。Formula =“=”和Range(“I27”)。Text') – YowE3K

回答

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框中,然后单击获取名称的相应单元格,可以更轻松地完成此操作。

+1

谢谢YowE3K,打算到目前为止!:-) – ManWithManyCheeses

+0

一个小问题,@ YowE3K发布了这个'Range(“I28”)。Formula =“=”&Range(“I27”)。Text'是否可能挤压圆的方法进去? – ManWithManyCheeses

+0

你的意思是你不想让用户输入公式的“=”部分? –

相关问题