Excel vba If,然后输入数值并输出非数值

Excel vba If,然后输入数值并输出非数值,excel,if-statement,range,conditional-statements,vba,Excel,If Statement,Range,Conditional Statements,Vba,我是新手,需要一些帮助-如果我的问题有点不清楚,我很抱歉 我想创建一个If-Then语句,使用一个小数点后一位的数字范围作为我的范围,并以非数字形式输出一个单词或代码 这就是我所拥有的,当我第一次尝试它时,它起了作用。我保存了它,但它现在停止工作,在点击命令按钮后,什么也没有发生 Dim score As Double, result As String If Range("E2") >= 18.6 And Range("E2") <= 21.5 Then Range("F2"

我是新手,需要一些帮助-如果我的问题有点不清楚,我很抱歉

我想创建一个If-Then语句,使用一个小数点后一位的数字范围作为我的范围,并以非数字形式输出一个单词或代码

这就是我所拥有的,当我第一次尝试它时,它起了作用。我保存了它,但它现在停止工作,在点击命令按钮后,什么也没有发生

Dim score As Double, result As String

If Range("E2") >= 18.6 And Range("E2") <= 21.5 Then
  Range("F2") = "2a"

Else
  If Range("E2") >= 21.6 And Range("E2") <= 24.5 Then
    Range("F2") = "3c"

  End If
End If

因此,如果我在单元格E2中输入一个介于18.6和21.5之间的数字,我希望代码2a出现在单元格F2中。

欢迎使用So。正如注释所示,您的语法是正确的。如果你感兴趣,可以给你一些建议。因为一个单元格也可以是一个字符串,而且字符串比数字大,所以可以得到奇怪的结果。一种确定你正在处理什么的方法就是测试它。此外,您可能会发现Select Case语法非常有用:

Sub Example()
    Dim score As Double, result As String
    If IsNumeric(Range("E2").Value) Then
        Select Case Range("E2").Value
            Case 18.6 To 21.5
                Range("F2") = "2a"
            Case 21.6 To 24.5
                Range("F2") = "3c"
            Case Else
                'Do something else if you want to:)
        End Select
    Else
        'Do something else if you want to:)
    End If
End Sub

你确定你在正确的工作表上吗?如果不指定范围所在的工作表,则很容易遇到问题。无论如何,我看不出你的代码有任何其他明显的问题。谢谢!我已经解决了。我错在那张纸的名字上加了一个字母。我真傻!