0

これは十分に単純な作業だと思いますが、Excel VBA の経験が十分でなく、その方法を知ることができません。基本的に、2 つのセルを続けて見て、両方に特定の日付がある場合に何かをしたいと考えています。2 つのセルは、常に 2 つの特定の列のいずれかに存在します。

たとえば、D2 と I2 の両方の日付が両方とも 11 月より前の場合、その行に何かをして次の行に移動したいと考えています。次に、D3 と I3 の両方の日付が両方とも 11 月より前の場合、その行に対して何かを行い、次の行に移動したいと考えています。などなど…。

私の問題は、すべてのステップをどのように行うかということではありません。この比較をどのように行うかが重要です。次のようにして、これらの 2 つの列のセルだけを選択する方法を知っています。

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

しかし、その後、両方の列のそれぞれのセルを比較する方法がわからないことに気付きました。1 つの列の各セルをループする方法しか知りません。

どんな助けでも大歓迎です。

4

1 に答える 1

1

Offset1列をループしてから、メソッドを使用して比較するのはどうですか。

これをチェックして:

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
于 2012-12-08T01:20:31.850 に答える