If statement VBA我的if语句不起作用

If statement VBA我的if语句不起作用,if-statement,excel,type-mismatch,vba,If Statement,Excel,Type Mismatch,Vba,我最近才开始在excel中学习VBA,我一直在网上学习各种教程,但在使用if语句时遇到了一些问题。基于我在网上学到的知识和我的VB知识,我想出了以下代码 Private Sub CommandButton1_Click() Dim mynum As Integer, checker As String mynum = Range("A1:A10").value If mynum > 0 Then checker = "check" Else

我最近才开始在excel中学习VBA,我一直在网上学习各种教程,但在使用if语句时遇到了一些问题。基于我在网上学到的知识和我的VB知识,我想出了以下代码

Private Sub CommandButton1_Click()
   Dim mynum As Integer, checker As String
   mynum = Range("A1:A10").value

   If mynum > 0 Then
        checker = "check"
   Else
        checker = "missing"
   End If

   Range("B1:B10").value = checker
End Sub
其思想是,如果a列中的数字大于0,则检查b列中的相邻单元格,如果其值为0或更低,则相邻单元格表示缺失(如果这有任何意义),这没有实际意义,因为我目前正在学习基本知识:)


现在我的问题是…基本上,当我试图调试它时,我得到了类型不匹配错误,我真的不明白为什么会这样。我知道当我将范围设置为一个单元格而不是多个单元格时,它会起作用,所以我最好的猜测是它与此有关。我已经调查过了,但我得到的结果再次证明了这一点。我一定是在什么地方读错了,但如果能帮上忙,我将不胜感激。:)

您不能为您尝试执行的操作分配/检查这样的范围值。一种方法是在你的范围内循环。比如说

Private Sub CommandButton1_Click()
    Dim Rng As Range, aCell As Range

    Set Rng = Range("A1:A10")

    For Each aCell In Rng
        If aCell.Value > 0 Then
            aCell.Offset(, 1).Value = "check"
        Else
            aCell.Offset(, 1).Value = "missing"
        End If
    Next
End Sub
编辑

顺便说一句,你不需要VBA。如果您对非VBA解决方案持开放态度,则只需将此公式放在单元格B1中并将其复制下来即可

=IF(A1>1,"Check","Missing")

Hi Siddharth感谢您的快速响应,我应该考虑循环它谢谢您的示例现在更有意义了:)