使用excel VBA将单元格中的文本与另一个单元格中的“= text”进行比较

我正在试图比较一个循环中的单元格值与VBA。 我正在使用的循环是这样的

For Each r In Rng If Cells(r.Row, var1) = "string" And Cells(r.Row, var2) = Variable Then Cells(r.Row, var3) = "targetstring1" ElseIf Cells(r.Row, var1) = "string2" And Cells(r.Row, var2) <> Variable Then Cells(r.Row, var3) = "targetstring2" end if Next r 

我试图允许在同一个Excel工作簿中input条件到input工作表,但是我需要使它成为dynamic的。 例如,在input单元格中,我想放置“= string”和“<> XX”,其中XX与Variable的值相同。 这将允许从input表而不是代码控制= / <>,并且允许用户更灵活地使条件适应他们的情况。

这可能吗? 我试图使用evaluate()函数,但一直没有能够得到它的工作。

任何帮助表示赞赏。

谢谢!

testinginput:

测试输入

码:

 Sub Tester() Dim rw As Range For Each rw In Range("A2:C10").Rows If rw.Cells(1) <> "" Then rw.Cells(3).Value = Eval(rw.Cells(1), rw.Cells(2)) End If Next rw End Sub Function Eval(rngVal As Range, rngCrit As Range) Dim addr As String, op As String addr = rngVal.Address(False, False) op = rngCrit.Value Eval = rngVal.Parent.Evaluate(addr & op) End Function 

结果:

产量

input条件时,您可能需要将单元格设置为文本格式或预先设置'以防止Excel将其作为公式处理