VBA
コードを書き始めたばかりで、問題に直面しています。つまり、セルがb11
にあり、セルa2
またはc2
に切り替えると、問題なくコードが実行されます。しかし、私がセルb2
に何かを書いてを押すと、と入力すると、コードは機能しません。私はこれがActiveCell.row
のために起こると仮定します。どうすればいいですか?を入力してください。変更前の行番号をキャプチャするVBA
P.S.私はMsgBox
エラーでセル番号を取得できるので、ActiveCell.Row
が必要です。
Sub Change()
Dim i As Long
i = ActiveCell.Row
If (Cells(i, "B") + Cells(i, "D")) <> Cells(i, "F") Then
MsgBox "B" & i & " + D" & i & " must equal cell F" & i & " which is: " & Range("W" & i).Value
Cells(i, "B").Interior.Color = RGB(255, 0, 0)
Cells(i, "D").Interior.Color = RGB(255, 0, 0)
Else
Range(Cells(i, "B"), Cells(i, "D")).Interior.Color = RGB(1000, 1000, 1000)
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range("B11:F10000"), Range(Target.Address)) Is Nothing Then
Call Change
End If
。コードは 'B11'から機能するはずです。したがって、私はセル 'B11'すなわち10にデータを書きます。その後にEnterキーを押すと、セル 'B12'に行き、コードは機能しません。代わりに、私のパッド・セル 'C11'または 'A11'で選択すると、マウスは11と同じ行にとどまるため、コードが機能します。Enterを押すと12行目になり、コードは機能しません。私はそれがActiveCell.Row関数を使っていることを確信しています – geocc
@georgecは "私がセル 'B11'すなわち10インチのデータを書き込むときにはわかりませんが、10は何ですか?私がセル "B11"に入力しているとき、上記のコードが動作します。説明できますか ? –
が動作します。どうもありがとうございます! – geocc