1

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

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

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

因此,我的 If 语句将是 If variable1 variable2 variable3 then "y" else "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"

但这也没有用

4

1 回答 1

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

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

于 2012-10-15T22:32:40.513 回答