3

私が書いているコードでは、特定のセル範囲の変更を監視して、関数とプライベート サブルーチンを実行します。このために、worksheet_changeサブで Intersect 関数を使用します。

ただし、交差「テスト」のトリガーは、マウスクリックで別のセルに移動するか、カーソルを移動するかをテストしているセルから「移動」することです。

.address必要なのは、以前に選択したセルのを含む変数を定義する方法です。

以下のコードを試しましたが、エラーしか表示されません。

これを行う方法を知っている人はいますか?

Public xfrLastCell As String
Public xfrActiveCell As String

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If xfrActiveCell = "" Then xfrActiveCell = ActiveCell.Address
xfrLastCell = xfrActiveCell
xfrActiveCell = ActiveCell
MsgBox xfrLastCell

End Sub
4

4 に答える 4

1

範囲のアドレスよりも範囲を「覚える」方が簡単かもしれません:

Dim Oldcell As Range
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Oldcell Is Nothing Then
        Set Oldcell = Target
        Exit Sub
    End If
    MsgBox "New cell is " & Target.Address & vbCrLf & "Old cell was " & Oldcell.Address
    Set Oldcell = Target
End Sub
于 2013-10-04T11:29:02.653 に答える