使用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()函数,但尚未能使其运行。
任何帮助表示赞赏。
谢谢!
答
测试输入:
代码:
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
结果:
当进入你可能需要你的细胞以文本格式或预先准备的标准'
以防止Excel试图将其视为公式
if语句的第一部分是否按照您的要求工作? –