有没有办法在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"
但那也行不通
答案 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
否则,这可能会运行任意代码,因此您可能需要先检查值是数字和/或运算符。