以列/行连接值并获取结果的值

时间:2017-03-20 09:37:22

标签: excel excel-vba excel-formula vba

我有一个excel工作表,如下所示。所需的输出如列G和最后一行所示,它连接列/行中的所有值,并给出结果表达式的值。

它实际上是某种谜题,其目的是用运算符替换某些数字,使得G中的值与指定值匹配。我正在从纸质版本中复制excel中的相同内容。

A     B     C    D    E    F    G

            3    3              33       
      4     1    +    2         43
4     0     +    5    6    4    604
7     3     2    /    1    2    61
      3     7    2    7         3727
            3    0              30
47  4033   304  0.4 2617   42

我尝试过以下公式:

="="&A2&B2&C2&D2&E2&F2

然而,它以文本格式而不是43给出结果,这是我所期望的:

=41+2

有没有办法让最终输出为43。

我开发(记录和修改)了一个宏,它只是复制上面的结果,将其粘贴为H列中的值,然后将文本运行到列'在H列上,它完全按照预期给出了所需的输出。但是,我仍然无法弄清楚如何对该行做同样的事情。

有没有办法只用公式来实现上述目标?

我想避免使用宏,因为撤消功能会丢失,但欢迎提出建议。

1 个答案:

答案 0 :(得分:5)

您可以创建一个使用Application.Evaluate将文本字符串计算为值的UDF。然后你的公式只需要=Eval(A2&B2&C2&D2&E2&F2)

Function Eval(txt As String)
    Eval = Application.Evaluate(txt)
End Function