Excel:向右移动,然后向下移动

Excel:向右移动,然后向下移动,excel,Excel,我正在做一个excel,用户可以更好地输入数据 我举了一个我想要实现的例子: 所以。。。用户在A2开始输入数据,然后按下“回车”按钮,所选单元格进入B2。一旦用户在B2单元输入数据并再次按enter键,光标将移动到A3,依此类推。 这就是我想在excel上的工作表中实现的运动。 A2-->B2-->A3-->B3-->A4-->B4。。。每次用户按下“回车”按钮时 我尝试阻止非A列和B列的所有其他列,并使用宏使用以下代码: 'Private Sub Workbook_Open() ' A

我正在做一个excel,用户可以更好地输入数据

我举了一个我想要实现的例子:

所以。。。用户在A2开始输入数据,然后按下“回车”按钮,所选单元格进入B2。一旦用户在B2单元输入数据并再次按enter键,光标将移动到A3,依此类推。 这就是我想在excel上的工作表中实现的运动。 A2-->B2-->A3-->B3-->A4-->B4。。。每次用户按下“回车”按钮时

我尝试阻止非A列和B列的所有其他列,并使用宏使用以下代码:

'Private Sub Workbook_Open()
'    Application.MoveAfterReturnDirection = xlToRight
'End Sub

'Private Sub Workbook_BeforeClose(Cancel As Boolean)
'    Application.MoveAfterReturnDirection = xlDown
'End Sub
但当光标到达最后一个活动单元格时,如果我按“回车”按钮,光标就会跳到工作表的第一个单元格


有什么想法吗?谢谢

按原样更改
MoveAfterReturnDirection
,并将以下内容添加到工作表中:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Target.Column = 2 Then Range("A" & Target.Row + 1).Select
End Sub
或者,不要触摸用户的首选项并使用:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Target.Column = 1 Then Range("B" & Target.Row).Select
    If Target.Column = 2 Then Range("A" & Target.Row + 1).Select
End Sub

在工作表中

是的,我尝试了这个简单的方法,但它不能作为excel属性工作,它将在另一台计算机上使用。有一种简单的方法可以做到这一点。告诉用户这个选项不是更好吗?与其强迫他们做一些他们可能不想要的事情,我认为通过编程使用VBA是可能的,我正在研究这种可能性,希望我能得到任何有用的东西。顺便说一句,获取最后一个活动单元格时,我可以将光标移动到所需的位置。我一直在搜索和播放。您可以将
MoveAfterReturnDirection
设置为
xlToRight
,然后使用工作表。更改
B
列中的事件以选择
a列中的适当单元格,我使用了该选项,但当我到达最后一个活动单元格时,我的选择将重新启动并跳到工作表的开头,即1$1单元格。