VBA 用 'OR' returns 错误的值计算 'IF'
VBA Evaluate 'IF' with 'OR' returns wrong values
我有这些专栏:
我正在尝试以这种方式评估它们:
dim myArray as variant
myArray = filter(application.transpose(columnSheet.evaluate("IF(OR(D=""D1"",D=""D2""),S,false)")),false,false)
看到 "DISPENSER" 整个列名等于 "D" 和 "SELLER" 整个列名等于 "S" 并且 "columnSheet" 是 [=32= 的名称]sheet object 这些列应该在的位置。
过滤器应用程序应提供 "myArray" 真实结果。
问题是 当我在函数中使用 "OR" 语句时 正在评估, 我得到 "SELLER" 整列 作为结果 。如果您尝试直接在 sheet 中应用相同的函数公式,则其 returns 会得到正确的结果。
我不知道 OR 有什么问题,但是你可以重新调整 IF 以获得你想要的结果:
myArray = Filter(Application.Transpose(Evaluate("IF(D=""D1"",S,if(D=""D2"",S,false))")), False, False)
我有这些专栏:
我正在尝试以这种方式评估它们:
dim myArray as variant
myArray = filter(application.transpose(columnSheet.evaluate("IF(OR(D=""D1"",D=""D2""),S,false)")),false,false)
看到 "DISPENSER" 整个列名等于 "D" 和 "SELLER" 整个列名等于 "S" 并且 "columnSheet" 是 [=32= 的名称]sheet object 这些列应该在的位置。
过滤器应用程序应提供 "myArray" 真实结果。
问题是 当我在函数中使用 "OR" 语句时 正在评估, 我得到 "SELLER" 整列 作为结果 。如果您尝试直接在 sheet 中应用相同的函数公式,则其 returns 会得到正确的结果。
我不知道 OR 有什么问题,但是你可以重新调整 IF 以获得你想要的结果:
myArray = Filter(Application.Transpose(Evaluate("IF(D=""D1"",S,if(D=""D2"",S,false))")), False, False)