VBA我的if语句不起作用

Zoe*_*Zoe 2 excel vba if-statement excel-vba type-mismatch

我最近才开始在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
Run Code Online (Sandbox Code Playgroud)

我们的想法是,如果a列中的数字大于0,则检查b列中的相邻单元格,如果相邻单元格为0或更低,则表示缺失(如果这有任何意义),那么就没有真正的指向我正在学习基础知识:)

现在我的问题...基本上当我尝试调试这个,我得到类型不匹配错误,我不知道为什么会这样.我知道当我将范围设置为一个单元格而不是多个单元格时它可以工作,所以我最好的猜测是它与它有关.我已经调查了它,但我再次得到的结果只是支持这应该工作.我一定在某个地方误读了它,但是会有所帮助.:)

Sid*_*out 7

您无法为此尝试分配/检查此范围的值.一种方法是循环你的范围.例如

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
Run Code Online (Sandbox Code Playgroud)

编辑

顺便说一句,你不需要VBA.如果您打开非VBA解决方案,那么只需将此公式放在单元格B1中并将其复制下来

=IF(A1>1,"Check","Missing")
Run Code Online (Sandbox Code Playgroud)