我最近刚刚开始在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或更低,则相邻单元格表示缺失(如果这有任何意义),则没有真正的指向这是因为我正在学习基础知识:)
现在我的问题...基本上当我尝试调试这个时,我得到了Type Mismatch错误,我真的不明白为什么会这样。我知道当我将范围设置为一个单元格而不是多个单元格时它可以工作,所以我最好的猜测是它与它有关。我已经调查了它,但我再次得到的结果只是支持这应该工作。我一定在某个地方误读了它,但是会有所帮助。 :)
答案 0 :(得分: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
修改强>
顺便说一句,你不需要VBA。如果您打开非VBA解决方案,那么只需将此公式放在单元格B1中并将其复制下来=IF(A1>1,"Check","Missing")