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

我真的很惊讶,我很难find答案。 我有2列包含一堆数字(在同一工作表上)。 我只是想让代码说:“如果列1中的值>列2中的值,则为列中的每一行执行此操作”。 我试过了

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

但显然这不行。

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

这个想法是这样的:

 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因为我从示例代码片段中直接借用了它。