【发布时间】:2017-04-18 03:10:44
【问题描述】:
我希望有一个单元格,有人可以在其中输入公式,然后使用宏自动将该公式中的单词替换为同一张表中的正确数字。
示例:
工作表包含一个带有权重值的单元格(L8),可以说它的 10
另一个单元格 (L10) 的高度值为 20。
现在,如果有人在单元格(I27) 中键入这样的内容:(Height+120)/Weight 我希望宏用相应的值替换文本,以便我可以将该文本用作公式并在单元格 I28 中显示结果。
所以 cell(I27) 将显示 20+120/10 并且 cell(I28) 将输出该公式的结果。
值在 L8-L14 列中。
我尝试使用我找到的解决方案,如下所示:
With Range("I27")
.Replace What:="Weight", _
Replacement:="", _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False, _
SearchFormat:=False, _
ReplaceFormat:=False
End With
我需要以某种方式告诉它从另一个单元格中获取替换。
我想如果我能让该代码正常工作,我就可以为每个要替换的单词复制它 (4),然后研究一个解决方案,使用公式在旁边的单元格中输出结果.
【问题讨论】:
-
为什么要替换单词?为什么不给 L8 命名为“重量”,将 L10 命名为“高度”。那么
=(Height+120)/Weight的公式是有效的,计算出你想要的答案。 -
我不确定我是否理解正确。我需要以某种方式告诉 excel,当有人在该单元格中输入这些特定单词时,它们实际上是在另一个地方找到的值。我只是想绕过手动查找和输入这些值,因为公式不会保持不变,你最终不得不经常这样做。此外,这些值正在计算中,因此它们一直在变化。 dot.Py 的解决方案已经帮助了我,我现在可以替换它,我现在要做的就是将那个“转换”的单元格作为公式在另一个单元格中使用。
-
这是否适用于某种考试情况,您会问诸如“您将如何计算某某”之类的问题,并且该人将他们的“答案”作为“公式”输入,然后您正在运行宏来生成他们的答案的结果?还是您只是试图允许用户在他们的公式中使用名称“体重”和“身高”(等)而不是“L8”和“L10”(等),以便他们的公式更“有意义”?如果是后者,只需命名单元格。 (即使是前者,您也可以命名单元格,然后将 I28 计算为
Range("I28").Formula = "=" & Range("I27").Text) -
@YowE3K 的意思是使用Excel Named Ranges。事实上,您正在寻找的正是命名范围的用途。
-
@A.S.H - 很高兴你来这里为我翻译! :)(我最大的问题是试图让人们理解我在说什么 :(这就是我喜欢计算机的原因——他们知道我的意思。)