【问题标题】:Excel vba If And Then inputting numerical values and outputting non numericalExcel vba If And Then输入数值并输出非数值
【发布时间】:2015-04-30 19:05:28
【问题描述】:

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

我想创建一个 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 中。

【问题讨论】:

  • 您确定您在正确的工作表上吗?当您不指定范围在哪个工作表上时,很容易遇到麻烦。无论如何,我看不出您的代码有任何其他明显的问题。
  • 谢谢!我已经解决了。我错误地在工作表名称中添加了一个字母。傻我!

标签: excel if-statement range conditional-statements vba


【解决方案1】:

欢迎来到 SO。您的语法是正确的(如 cmets 所示)。一些提示(如果您有兴趣)。因为一个单元格也可以是一个字符串,并且因为一个字符串会比较为大于一个数字,所以你会得到奇怪的结果。确定您正在处理的内容的一种方法就是对其进行测试。此外,您可能会发现“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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多