3

私はこの問題にかなりの量で遭遇し、誰かが私にこれを少しきれいに書くことができる理由または方法を教えてくれるかどうか興味があります.

以下は私のコードで、動作します。

If Target.Row = rTime.Offset(0, 1).Row Then
    If Target.Column = rTime.Offset(0, 1).Column Then
        cboStatus.Activate
    End If
End If

どうしてこうしか書けないの?

If Target = rTime.Offset(0, 1) Then
    cboStatus.Activate
End If

ターゲットがすでに範囲である場合、個々の行と個々の列を指定する必要があるのはなぜですか? その 2 番目のコードは機能せず、さまざまなバリエーションを試しました。If Target.Range = range(“C4”) Thenまたはのようなことも試しましIf Target.Range = cells(4, 3) Thenたが、どちらも機能しませんでした。私は同様のものの多くのバリエーションを試しました。A4ただし、例にあるようなものを使用したかったので、 のような特定の範囲を使用したくありませんが、rTimeこれを理解しようとしていました。

毎回個々の行と列を指定する以外に、何も機能していないようです。誰かが私にこれを説明してもらえますか? また、最初の例で行った方法よりも、これを書くためのより良い方法はありますか?

私の混乱を和らげてくれてありがとう。

4

2 に答える 2

2

これを試して:

Edit1:チスの懸念をカバーするために

If Target.Address = rtime.Offset(0,1).Address(,,,True) then cboStatus.Activate

オブジェクトを比較することはできず、プロパティのみを比較しますか? 確かではありませんが。

于 2013-11-11T07:32:08.127 に答える