Vba 动态IF语句

Vba 动态IF语句,vba,excel,Vba,Excel,有没有办法在Excel VBA中构建动态if语句?基本上,我试图创建一个参数化计算,用户将能够输入不同的变量,即 变量1“变量2”变量3 在这种情况下 变量1是单元格引用 变量2将是=或等 变量2将是单元格引用 因此,我的If声明将是 如果变量1变量2变量3,则为“y”,否则为“n” 当我在代码中尝试它时 If FinalvaluesArray(ArrayRow, 5) & SRCBook.Sheets("Filter Parameters").Cells(2, 4).Value &a

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

变量1“变量2”变量3

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

因此,我的If声明将是 如果变量1变量2变量3,则为“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"

但这也不起作用

如果您信任变量的来源,那么您只需

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

否则,这可能会运行任意代码,因此您可能希望在执行此操作之前检查值是否为数字和/或运算符。

+1,我完全误解了这个问题。这是正确的答案。唯一的替代方法是创建一个接受这三个参数的函数并返回true或false,但这更简单。