gpt4 book ai didi

vba - if-elseif 函数无响应

转载 作者:行者123 更新时间:2023-12-04 20:12:17 25 4
gpt4 key购买 nike

关闭。这个问题需要debugging details .它目前不接受答案。












编辑问题以包含 desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem .这将帮助其他人回答问题。


6年前关闭。







Improve this question




我正在尝试使用宏创建一个工具,以便在选择几个标准时,将显示某个评级。在获得结果之前需要过滤三个标准。

例如,如果选择行业(例如 Agriculture),然后选择国家(例如 Indonesia),然后选择特定比率(例如 2.5),将给出 1 到 6 的评分(在这种情况下,3)。

我尝试了以下代码,我的评分栏下没有出现任何内容,但没有错误消息。我的代码中是否缺少任何导致没有结果发生的内容?

Private Sub CommandButton1_Click()
If Range("V4").Value = "A.Agriculture,forestry and fishing" Then

If Range("W4").Value = All Or ID Or SG Then

If Range("D4").Value <= 0 Then
Range("X4").Value = 6
ElseIf Range("M4").Value > 4 Then
Range("X4").Value = 5
ElseIf Range("M4").Value <= 4 And Value > 2 Then
Range("X4").Value = 4
ElseIf Range("M4").Value <= 2 And Value > 1 Then
Range("X4").Value = 3
ElseIf Range("M4").Value <= 1 And Value > 0 Then
Range("X4").Value = 2
ElseIf Range("M4").Value <= 0 Then
Range("X4").Value = 1
End If

ElseIf Range("W4").Value = MY Or TH Then

If Range("D4").Value <= 0 Then
Range("X4").Value = 6
ElseIf Range("M4").Value > 4.5 Then
Range("X4").Value = 5
ElseIf Range("M4").Value <= 4.5 And Value > 2 Then
Range("X4").Value = 4
ElseIf Range("M4").Value <= 2 And Value > 1 Then
Range("X4").Value = 3
ElseIf Range("M4").Value <= 1 And Value > 0 Then
Range("X4").Value = 2
ElseIf Range("M4").Value <= 0 Then
Range("X4").Value = 1
End If

End If
End If
End Sub

最佳答案

带有 的 If 语句或 没有正确形成。此外, 的组合如果 Select Case statement s 似乎最适合这些多重嵌套条件。这也应该使您的代码模式可读。

If Range("W4").Value = "All" Or Range("W4").Value = "ID" Or Range("W4").Value = "SG" Then

VBA默认区分大小写,字符串需要用引号括起来;例如 All <> "All""ALL" <> "all" .最好使用 LCaseUCase比较函数 "Apples""Apples" .
Private Sub CommandButton1_Click()
If Range("V4").Value = "A.Agriculture,forestry and fishing" Then
Select Case LCase(Range("W4").Value)
Case "all", "id", "sg"
If Range("D4").Value <= 0 Then
Range("X4").Value = 6
Else
Select Case Range("M4").Value
Case Is > 4
Range("X4").Value = 5
Case 2.01 To 4
Range("X4").Value = 4
Case 1.01 To 2
Range("X4").Value = 3
Case 0.01 To 1
Range("X4").Value = 2
Case Is <= 0
Range("X4").Value = 1
Case Is > 4
Range("X4").Value = 6
End Select
End If
Case "my", "th"
If Range("D4").Value <= 0 Then
Range("X4").Value = 6
Else
Select Case Range("M4").Value
Case Is > 4.5
Range("X4").Value = 5
Case 2.01 To 4.5
Range("X4").Value = 4
Case 1.01 To 2
Range("X4").Value = 3
Case 0.01 To 1
Range("X4").Value = 2
Case Is <= 0
Range("X4").Value = 1
Case Is > 4
Range("X4").Value = 6
End Select
End If
End Select
End If

End Sub

请注意,我在 中添加了一个小十进制值。 之间样式 Case 语句以实现大于和小于或等于的逻辑。

关于vba - if-elseif 函数无响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35690580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com