If statement VBA我的if语句不起作用
我最近才开始在excel中学习VBA,我一直在网上学习各种教程,但在使用if语句时遇到了一些问题。基于我在网上学到的知识和我的VB知识,我想出了以下代码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
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感谢您的快速响应,我应该考虑循环它谢谢您的示例现在更有意义了:)