什么意思如果*然后*和条件

时间:2016-04-27 07:17:38

标签: excel vba excel-vba

我可能有一个简单的问题,但它让我大吃一惊。我有一些代码可以重构一下,但是无法弄清楚作者在这句话中的想法

If (j > 0) Then greatThanPrec = greatThanPrec And (signalAmplArray(i) > signalAmplArray(j))

我想我知道基本的If Then else是如何工作的,但是之后不能意识到为什么类似于A = A,那么AND可能是像C / C ++那样的短暂条件?< / p>

1 个答案:

答案 0 :(得分:9)

特定AndIf Then无关。

Then之后的代码只会更新greatThanPrec,具体取决于signalAmplArray(i) > signalAmplArray(j)是否greatThanPrec。如果TruegreatThanPrec都是signalAmplArray(i) > signalAmplArray(j)True将保持False,否则会signalAmplArray(i) > signalAmplArray(j)

为了更好地查看它,请将greatThanPrec = greatThanPrec And True 'greatThanPrec does not change its value 替换为其可能的值。您将获得两个选项:

greatThanPrec = greatThanPrec And False 'greatThanPrec becomes false
If (j > 0) Then
  If Not (signalAmplArray(i) > signalAmplArray(j)) Then
    greatThanPrec = False
  End If
End If

如果你想重构它,那就是

RecyclerView