运行一个比较选定的单元格的Excelmacros

我想在选定的单元格上运行一个macros – macros将macros单元与它下面的邻居进行比较 – 改变它们的颜色并移动到下一对单元格中。

这是一个1维数组,我想比较每一对细胞(第一与第二,第三与第四等)

我尝试过

For Each cell In Selection 

但是我不知道如何比较给定的单元格和下面的单元格。

以下是示例代码。

 Sub compare() Dim rng As Range, cell As Range Set rng = Selection ' For Each cell In rng 'makes comparison 'offset(1,0) is used to find one cell below active cell If cell.Value = cell.Offset(1, 0) Then cell.Offset(1, 0).Interior.Color = vbRed End If Next End Sub 

更新了答案

 Sub compare() Dim rows As Long rows = Selection.rows.Count - 1 Dim selCol As Long selCol = ActiveCell.Column Dim selRow As Long selRow = ActiveCell.Row For i = selRow To (selRow + rows) If Cells(i, selCol) = Cells(i, selCol + 1) Then Range(Cells(i, selCol), Cells(i, selCol + 1)).Interior.Color = vbYellow End If Next End Sub 
 Sub compareCells() Dim i As Integer 'Check dimension If Selection.Columns.Count <> 1 Then MsgBox "not 1d array" Exit Sub End If 'Check size If Selection.Rows.Count Mod 2 <> 0 Then MsgBox "size not even" Exit Sub End If For i = 1 To Selection.Count / 2 With Selection If .Cells(2 * i - 1) = .Cells(2 * i) Then 'what you want to do here, for eg , change color .Cells(2 * i).Interior.Color = vbYellow Else 'what you want to do here 'MsgBox "neq" End If End With Next i End Sub