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