通过键盘输入激活 SelectionChange 上的单元格范围

Activate a cell-range on SelectionChange via keyboard input

我通过以下 excel-vba 代码激活工作表上给定的单元格范围:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
' msgbox("Change recognized")
If Sh.Name <> "Spielfeld" Then
    If ActiveCell.Column > 1 Then
        Dim UserSelection As Range
        Set UserSelection = Sh.Range(Cells(1, ActiveCell.Column), Cells(16, ActiveCell.Column))
        UserSelection.Activate
    End If
End If
End Sub

通过鼠标输入更改列/单元格时代码工作正常。但是,如果我只是按向左或向右箭头键,excel 会更改活动单元格/活动列 而不会 选择定义的 UserSelection!然而,当按下箭头键时,sub 本身总是被激活(即使我通过箭头键更改单元格,也会弹出一个消息框)。
谁能告诉我为什么在使用箭头键更改列时我的选择没有自动更新?我该怎么做?

您必须Select而不是激活

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.Name <> "Spielfeld" Then
    If ActiveCell.Column > 1 Then
        Dim UserSelection As Range
        Set UserSelection = Sh.Range(Cells(1, ActiveCell.Column), Cells(16, ActiveCell.Column))
        Application.EnableEvents = False
            UserSelection.Select
        Application.EnableEvents = True
    End If
End If
End Sub