VBA排名标准宏-Else无If错误
我试图创建一个宏,根据单元格中的值返回给定的秩。它所基于的值(B24)将决定排名并将其放入B26。下面是我使用的排名和代码。例如,大于2B的值应为“1”。我怎样才能让它工作?我目前收到“编译错误:没有if的Else”VBA排名标准宏-Else无If错误,vba,excel,if-statement,rank,Vba,Excel,If Statement,Rank,我试图创建一个宏,根据单元格中的值返回给定的秩。它所基于的值(B24)将决定排名并将其放入B26。下面是我使用的排名和代码。例如,大于2B的值应为“1”。我怎样才能让它工作?我目前收到“编译错误:没有if的Else” 子标准() On错误转到catch_错误 工作表(“表1”)。激活 将分数设置为整数,结果设置为字符串 分数=范围(“B24”)。值 如果得分>2000000000,则结果=“1” ElseIf得分>=150000000,得分=500000000,得分=250000000,得分 在
子标准()
On错误转到catch_错误
工作表(“表1”)。激活
将分数设置为整数,结果设置为字符串
分数=范围(“B24”)。值
如果得分>2000000000,则结果=“1”
ElseIf得分>=150000000,得分=500000000,得分=250000000,得分
在结果=范围(“B26”)之前的行上写上“如果结束”李>
Dim score为Double
,不是整数,您的值太高,不是整数
这一点应该颠倒过来:
范围(“B26”)。值=结果
单行If
语句不能包含Else
:
If score > 2000000000 Then result = "1"
您需要按照以下方式对其进行重组:
If score > 2000000000 Then
result = "1"
ElseIf score >= 1500000000 And score <= 1999999999.99 Then
result = "2"
ElseIf score >= 500000000 And score <= 1499999999.99 Then
result = "3"
ElseIf score >= 250000000 And score <= 499999999.99 Then
result = "4"
ElseIf score < 249999999.99 Then
result = "Out Of Scope"
End If
如果分数>2000000000,则
结果=“1”
对于其他人所说的内容,ElseIf得分>=150000000,得分=500000000,得分=250000000,得分:
不能将单行if与Else或Else if一起使用
分数必须是双倍的
最后一行是反向的
加上
不需要小于参数,因为一旦if语句找到true,它将停止查找
代码:
@ismphoto123-模糊分数为双倍
这就是我修复它的方法。谢谢快速提问——假设我必须在两个单元格中进行选择。如果一个为空,则使用另一个来确定排名。我该怎么办?例如B26或B28@ismphoto123-如果是空的(范围(“B26”).Value),则得分=范围(“B28”)。否则得分=范围(“B26”)。Value
@ismpoto123新问题需要自己的帖子。俄罗斯娃娃问题在这里是不受欢迎的。请自己尝试,然后发布一个新问题,包括你尝试过的内容和失败的地方。关于这个问题,已经回答了。请选择一个正确的。快速提问——假设我必须在两个单元格中进行选择。如果一个为空,则使用另一个来确定排名。我该怎么办?B26或B28类似的东西-现在你有三个答案,你有责任选择一个是“正确”的答案。您可以通过单击答案旁边的复选标记来选择它。选择您认为最有用的和/或您使用的。通过选择正确答案,它将关闭已回答的问题,并将其从未回答队列中删除。不要误以为这是选择我的请求。我只是在已经很好的答案上加了一件事,如果你选择另一件,我的感情不会受到伤害。
If score > 2000000000 Then
result = "1"
ElseIf score >= 1500000000 And score <= 1999999999.99 Then
result = "2"
ElseIf score >= 500000000 And score <= 1499999999.99 Then
result = "3"
ElseIf score >= 250000000 And score <= 499999999.99 Then
result = "4"
ElseIf score < 249999999.99 Then
result = "Out Of Scope"
End If
Sub Criteria()
On Error GoTo catch_error
With Worksheets("Sheet1")
Dim score As Double, result As String
score = .Range("B24").Value
If score > 2000000000 Then
result = "1"
ElseIf score >= 1500000000 Then
result = "2"
ElseIf score >= 500000000 Then
result = "3"
ElseIf score >= 250000000 Then
result = "4"
Else
result = "Out Of Scope"
End If
.Range("B26").Value = result
Exit Sub
End With
catch_error:
MsgBox "Some Error Occurred"
End Sub