如何将一列中的日期与另一列中同一行中的单元格进行比较?

时间:2012-12-08 00:52:15

标签: excel excel-vba vba

我觉得这应该是一个足够简单的任务,但我对Excel VBA的经验不足以了解如何处理它。基本上我想连续看两个单元格,如果两个单元格中都有特定的日期就行。这两个单元格将始终位于两个特定列之一。

例如,如果D2和I2中的日期都早于11月,那么我想对该行执行某些操作并移至下一行。然后,如果D3和I3中的日期都早于11月,那么我想对该行做一些事情并移动到下一行。依此类推,等等......

我的问题不在于如何完成所有步骤。这真的是关于如何进行比较。我知道如何通过执行以下操作来仅选择这两列中的单元格:

Union(Range(Cells(2, 4), Cells(Rows.Count, 4).End(xlUp)), _
    Range(Cells(2, 9), Cells(Rows.Count, 9).End(xlUp))).Select

但后来我发现我不知道如何比较两列的各个单元格。我只知道如何遍历一个列的每个单元格。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

如何只循环1列,然后使用Offset方法进行比较。

检查一下:

Option Explicit

Sub CheckTwoCols()

Dim wks As Worksheet, lastrow As Long, rng As Range, cel as Range

Set wks = Sheets(1) 'change sheet reference to suit your needs

With wks

    lastrow = .Range("D" & .Rows.Count).End(xlup).Row

    Set rng = .Range("D2:D" & lastrow)

    For each cel in rng

        'column I is 5 columns to the right of column D
        If cel < "11/1/2012" and cel.offset(,5)  < "11/1/2012" Then

             'process code

        End If 

   Next

End With

End Sub