动态IF语句

时间:2012-10-15 22:24:42

标签: excel vba excel-vba

有没有办法在Excel VBA中构建动态if语句?基本上我正在尝试创建一个参数化计算,用户可以输入不同的变量,即

变量1“变量2”“变量3”

在这种情况下 变量1是单元格引用 变量2将是=或<或者>等等 变量2将是一个单元格引用

因此,我的If语句将是  如果variable1 varaible2 variable3则为“y”,否则为“n”

当我在代码中尝试它时

 If FinalvaluesArray(ArrayRow, 5) & SRCBook.Sheets("Filter Parameters").Cells(2, 4).Value & SRCBook.Sheets("Filter Parameters").Cells(2, 3).Value Then wbNew.Sheets("Output Table").Range(ResultString) = "Y" Else wbNew.Sheets("Output Table").Range(ResultString) = N"

似乎没有正确评估表达式,但似乎总是返回一个真值。反正有没有这样的功能?

我首先尝试将表达式作为字符串添加,然后输入如下代码:

EvaluateFunction = FinalvaluesArray(ArrayRow, 5) & SRCBook.Sheets("Filter Parameters").Cells(2, 4).Value & SRCBook.Sheets("Filter Parameters").Cells(2, 3).Value

If EvaluateFunction= true Then "Y" Else "N"

但那也行不通

1 个答案:

答案 0 :(得分:3)

如果您信任变量所来自的来源,那么您只需执行

即可
If Application.Evaluate(FinalvaluesArray(ArrayRow, 5) & SRCBook.Sheets("Filter Parameters").Cells(2, 4).Value & SRCBook.Sheets("Filter Parameters").Cells(2, 3).Value) Then
    ....
End If

否则,这可能会运行任意代码,因此您可能需要先检查值是数字和/或运算符。