从单元格中选择一个数学符号并在vba公式中使用

时间:2013-11-24 06:28:04

标签: excel-vba string-concatenation vba excel

我偶然发现了一个名为“go figure!”的新谜题。在当地报纸上。我目前在网上找不到任何东西,但它与sudoko类似,但有数学操作员。 您将获得一个要使用的数字列表,您必须填写空白。 例如: 第一行是_ / _ + _ = 10

我在小区D4 a /和小区F4 a +

我的vba代码

Dim OPR11, OPR12, as String

然后再往下我

OPR11 = Cells(4, 4).Value
OPR12 = Cells(4, 6).Value

所以在这种情况下OPR11 = /和OPR12 = +

接下来,我设置一个带有数字的数组,然后执行下一个for循环,如下所示:

For Each rng3 In vArray
  For Each rng2 In vArray
    For Each rng1 In vArray
 If rng1 & OPR11 & rng2 & OPR12 & rng3 = R1A Then
  DO CODE
 end if
    next rng1
  next rng2
next rng3

你可以看到很多,我的If功能无效。显然,我不能CONC将mathamatical运算符纳入公式并使其有效。

我应该怎样做才能让它发挥作用? 感谢

1 个答案:

答案 0 :(得分:2)

我认为您需要使用Evaluate()来计算公式表达式。

例如

enter image description here

使用 CTRL + G 启用立即窗口

并运行代码

Option Explicit

Sub Main()

    Dim c4 As Range
    Dim d4 As Range
    Dim e4 As Range
    Dim f4 As Range
    Dim g4 As Range

    Set c4 = Cells(4, 3)
    Set d4 = Cells(4, 4)
    Set e4 = Cells(4, 5)
    Set f4 = Cells(4, 6)
    Set g4 = Cells(4, 7)

    Dim answer As Double
    answer = Evaluate("=" & c4 & d4 & e4 & f4 & g4)

    Debug.Print "The formula evaluates to: " & Evaluate("=" & c4 & d4 & e4 & f4 & g4)

    Cells(4, 9) = answer

End Sub

enter image description here