如果声明在图表范围

我写和Excel VBA如果声明,但我不明白为什么它不工作。

我有1工作表称为“数据”,我想检查列I中的一些variables是否与我的ActiveSheet第2行B列(这是数字2)相同。 我用下面的代码自动结束,因为它不工作。 有人有个想法吗?

例:

Sub test() If Sheets("Data").Range("I:I") = ActiveSheet(2, 2) Then MsgBox ("Yes") Else MsgBox ("No") End If End Sub 

如果要validation该列中的每个项目,则应在列I创build一个循环; 一旦你发现一个不匹配的值,就使用一个标志来救助,以避免一旦你已经知道结果,就循环遍历所有的单元格:

 Dim x as long, result As Boolean result = True For x = 1 to 100 'let's say up to row 100 If Worksheets("Data").Range("I" & x).value <> ActiveSheet.Cells(2, 2).value Then result = False End If If Not result Then Exit For Next x If result Then MsgBox "Yes" Else MsgBox "No" End If 

你比较一个整列(即1048576值)与一个显然不起作用的值。 此外,如果您想要访问特定的单元格,则必须使用工作表的单元格集合(即ActiveSheet.Cells(2,2)

如果要分别比较列I中的每个单元格,请使用循环。 如果您只想知道search值是否存在于列内某处,则可以使用Range.Find方法。