繁体   English   中英

我正在使用按钮命令,但是使用elseif语句看不到这段代码有什么问题

[英]I'm Working with a button command, but can't see what's wrong with this code using elseif statements

该代码应该执行的操作是,如果您在cell 2,2有一个数字,并且它介于这些if语句的范围之间,那么它将在cell 3,3给您一个数字。 问题在于它仅适用于前三个语句。 第四个不起作用。 它为您提供数字1而不是数字2。

*注:程序使用更多语句,但这只是为了表明问题出在第三条语句之后,对不起我的英语。

Cell 3,6= 5

Cell 3,7= 10

'MEC
If sheet1.Cells(2, 2) = Empty Then
            sheet3.Cells(3, 3) = ""
            sheet4.Cells(3, 3) = 0

'MEC limited
ElseIf sheet2.Cells(2, 2) = 1 Then
    sheet3.Cells(3, 3) = 0

'MEC aceptable
ElseIf sheet1.Cells(2, 2) > 1 < sheet.Cells(3, 6) Then
    sheet3.Cells(3, 3) = 1

'MEC Good
ElseIf sheet1.Cells(2, 2) > 5 <= sheet2.Cells(3, 7) Then
    sheet3.Cells(3, 3) = 2                 
End If

End Sub

您的工作表中有一个“ MEC可接受”的错字。 sheet.Cells 从上下文来看,它看起来应该是Sheet2.Cells

ElseIf sheet1.Cells(2, 2) > 1 < sheet.Cells(3, 6) Then

除此之外,请尝试使用Select Case 您可以使用IF语句,但是当您有很多ElseIf时, Select Case会派上用场

Select Case (Sheet1.Cells(2, 2).Value)

    Case Is = ""
        Sheet3.Cells(3, 3) = ""
        Sheet4.Cells(3, 3) = 0
    Case Is = 1
        Sheet3.Cells(3, 3) = 0
    Case Is <= Sheet2.Cells(3, 6) 'There was typo in your orig code.. Sheet2?
        Sheet3.Cells(3, 3) = 1
    Case Is <= Sheet2.Cells(3, 7)
        Sheet3.Cells(3, 3) = 2

End Select

看来您在这里混用了几种语言。 编写第三和第四比较的VBA方法更接近

If Sheet1.Cells(2, 2) = Empty Then
            Sheet3.Cells(3, 3) = ""
            Sheet4.Cells(3, 3) = 0
'MEC limited
ElseIf Sheet2.Cells(2, 2) = 1 Then
        Sheet3.Cells(3, 3) = 0
'MEC aceptable
ElseIf Sheet1.Cells(2, 2) > 1 And Sheet1.Cells(2, 2) < Sheet2.Cells(3, 6) Then
        Sheet3.Cells(3, 3) = 1
'MEC Good
ElseIf Sheet1.Cells(2, 2) > 5 And Sheet1.Cells(2, 2) <= Sheet2.Cells(3, 7) Then
        Sheet3.Cells(3, 3) = 2
End If

这些陈述中仍然有一些优先事项。 如果B2为6,则它大于1且大于5。根据F3和G3中的内容,可能永远不会达到第四个条件。 考虑到您的F3示例为5,应该可以。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM