比较Excel VBA中的两列(大于/小于或等于)

时间:2012-10-02 23:57:47

标签: excel function vba compare

我真的很惊讶我找不到这个问题的答案。我有2列包含一堆数字(在同一工作表上)。我只想让代码说出"如果第1列中的值>第2栏中的值,执行此操作"对于列中的每一行。我试过了

If sheet.range("B2:B35").Value > sheet.range("C2:C35").Value Then
'do something
End If

但显然它并没有这样做。

1 个答案:

答案 0 :(得分:6)

你需要考虑一个循环来独立检查每一行。

这个想法是这样的:

For i = 2 to 35
    If Sheet.Range("B" & i).Value > Sheet.Range("C" & i).Value
        'Do Something for Row i
    End If
Next

Value可以省略,因为它是隐式的,这意味着Sheet.Range("B" & i).Value会返回与Sheet.Range("B" & i)相同的结果

此外,根据您的需要,有多种方法可以解决细胞问题。

  Range() 'Can be used to address multiple cells at the same time over a range
          ' or used to address a single cell as is done here

  Cells() 'Can be used to address a single Cell by calling Cells("B" & i) as is 
          ' done above, or can reference the row and column numerically like  
          ' Cells(2, i)

如果您希望移动给定的工作表,例如:

,则可以将上述任一方法与Offset()结合使用
  Cells(2, 1).Offset(0, i) 'Addresses the Cell offset from "B1" by 0 columns and
                           ' i rows.  

我个人倾向于在这些情况下使用Cells(2, i),但我刚刚使用Range,因为我直接从您的示例代码段中借用了它。