我觉得这应该是一个足够简单的任务,但我对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
但后来我发现我不知道如何比较两列的各个单元格。我只知道如何遍历一个列的每个单元格。
非常感谢任何帮助。
答案 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