Lub*_*Suk 2 excel vba excel-vba
我可能有一个简单的问题,但它让我大吃一惊.我有一些代码可以对它进行一些重构,但是无法弄清楚作者在这句话中的想法
If (j > 0) Then greatThanPrec = greatThanPrec And (signalAmplArray(i) > signalAmplArray(j))
Run Code Online (Sandbox Code Playgroud)
我想我知道基本的If Then else工作原理,但是不能意识到为什么会像A = A之后那样,然后AND可能是像C/C++这样的短暂状态?
那个特别And与之无关If Then.
Then简单更新后的代码greatThanPrec取决于是否signalAmplArray(i) > signalAmplArray(j).greatThanPrec会留True如果两个greatThanPrec和signalAmplArray(i) > signalAmplArray(j)是True的,否则就会变成False.
为了更好地看到它,请替换signalAmplArray(i) > signalAmplArray(j)为其可能的值.您将获得两个选项:
greatThanPrec = greatThanPrec And True 'greatThanPrec does not change its value
Run Code Online (Sandbox Code Playgroud)
greatThanPrec = greatThanPrec And False 'greatThanPrec becomes false
Run Code Online (Sandbox Code Playgroud)
如果你想重构它,那就是
If (j > 0) Then
If Not (signalAmplArray(i) > signalAmplArray(j)) Then
greatThanPrec = False
End If
End If
Run Code Online (Sandbox Code Playgroud)