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

问题描述:

我试图将循环中的单元格值与VBA进行比较。我用的是循环是这样的使用excel VBA将单元格中的文本与另一个单元格中的“= text”进行比较

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工作簿,但我需要使它的动态。例如,在输入单元格中,我想放置“= string”和“<> XX”,其中XX与Variable的值相同。这将允许从输入表而不是代码控制=/<>,并且允许用户更灵活地使条件适应他们的情况。

这可能吗?我曾尝试使用evaluate()函数,但尚未能使其运行。

任何帮助表示赞赏。

谢谢!

+0

if语句的第一部分是否按照您的要求工作? –

测试输入:

Test Input

代码:

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 

结果:

Output

当进入你可能需要你的细胞以文本格式或预先准备的标准'以防止Excel试图将其视为公式