dynamicIF语句

有没有办法在Excel VBA中build立一个dynamic的if语句? 基本上我试图创build一个参数化的计算,用户将能够input不同的variables,即

variables1“variables2”“variables3”

在这种情况下,variables1是一个单元格引用variables2将是=或<或>等variables2将是单元格引用

因此,我的If语句语句将如果variables1variables2variables3然后“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" 

它似乎没有正确评估expression,但似乎总是返回一个真正的价值。 反正有buld这样的function?

我试着把expression式最初作为一个string来构build,并且有这样的代码:

 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" 

但是,这也没有奏效

如果你相信你的variables来源,那么你可以简单地做

 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 

否则,这可能会运行任意代码,所以你可能要在做之前检查这些值是数字和/或操作符。