在Excel中将公式中的公式转换为公式中的值VBA

问题描述:

是否可以使用VBA将公式= n2 + m2转换为其他工作表上的实际值。例如,单元格m2为0,并且在sheet1上n2为96,879。我想在sheet2上插入一个公式,例如= 0 + 96879。这是一种各种审计线索。这实际上会在很大范围内执行,但这是一般的想法。我一直在寻找几个小时,一无所获。在Excel中将公式中的公式转换为公式中的值VBA

+2

那么它可能是*可能*,但除非你是用相对简单的公式的工作,它会需要串的巨大量操纵来解析单元格的“.Formula.Text”。你只需要解析出公式中的参考文献... – 2013-05-02 20:54:09

+1

有几种选择可以实现你想要的[RefTreeAnalyser](http://www.jkp-ads.com/RefTreeAnalyser01.asp), [Aaron Bloods Explode](http://office.microsoft.com/en-gb/excel-help/display-the-relationships-between-formulas-and-cells-HP010342448.aspx?CTT=1)和Rob Van Gelders [audxl](http://vangelder.orconhosting.net.nz/excel/audxl.html) – brettdj 2013-05-03 03:04:59

是,也不是。这是可能的,但这是一项非常艰巨的任务。

参考此链接,关于各种方法的一些讨论:

Does Excel have a built in method for parsing formulas? (ie: to obtain a list of included RANGE references)

+0

确实,我认为我的用户只需要转到sheet1并检查引用,而不是试图实现这一点。 – 2013-05-03 12:42:39

+0

您可以使用“Trace Precedents”功能(如果使用更新版本的Excel)来协助。这将显示引用并允许您轻松导航到它们。 http://imgur.com/Tr0ItIm – 2013-05-03 13:06:52

+0

而在一些进一步的研究中......可能可以适应这样的事情:http://www.ozgrid.com/forum/showthread.php?t=17028&p=86877 #post86877虽然我仍然认为任何比简单的加法公式更复杂的事情,但要正确解析会非常棘手。 – 2013-05-03 13:13:36

在表2 A1进入

=Sheet1!n2&"+"&Sheet1!m2 

如果你想等号(=)来然后就去做

="="&Sheet1!n2&"+"&Sheet1!m2 
+0

这适用于简单的公式,更复杂的公式怎么办? OP将必须根据A1中公式的结构定制Sheet2上的每个公式,因此我怀疑OP要求提供VBA解决方案的原因。 – 2013-05-02 20:50:58

+0

我希望这件事很简单,但是......我的公式很简单n2 + m2,但是我想让结果可见,一旦你点击单元格而不是看到= sheet1!n2 + sheet1!m2,你看到= (值)+值。如果我只想让字符串可见,则此方法可行。 – 2013-05-03 12:39:23