使用Case是命名列

时间:2015-01-21 17:19:13

标签: excel vba excel-vba

我无法使这个(简单的)VBA公式起作用(在Excel 2010中)。我想要公式来评估细胞B2。如果B2为空,我希望C2为空白。如果B2> 0,我希望C2填充单词" success"。然后我希望程序使用与上面相同的逻辑来评估B3,B4,B5等(通过B20)。换句话说,对于每个Bx,我想要两个案例中的一个。情况1)Bx中的空白值在相应的Cx中产生空白或情况2)在Bx中大于0的值产生单词"成功"在相应的Cx中。当我运行宏时,我没有收到错误消息,但C列中没有任何反应。调试器告诉我问题出在Comment.Name =" Comment"但我无法弄清楚错误是什么。谢谢!

Sub AutoComplete()
    Dim Comment As Range
    Set Comment = Range("C2:C20")
    Comment.Name = "Comment"
    For i = 2 To 20
        Select Case Range("B" & i).Value
            Case Is > 0
                StartDate = "Success"
            Case Is = " "
                StartDate = " "
        End Select
    Next i

End Sub

1 个答案:

答案 0 :(得分:2)

您没有向C列写任何内容。您在变量StartDate中添加了一个值,但没有对其执行任何操作。你还没有对评论范围做任何事情。以下内容将写入C列

Range("C" & i).Value = "Success"