Excel 2013 |尝试从一列列表的底部移动到下一列的顶部
我试图在一个单元格块中填写一个列表:D2:E8向下移动。当我到达D8时,我希望能够按enter键(数字或常规)并移动到E2以开始列表的第二列。我意识到我可以tab,enter,tab,enter…,但是,我不想!这是我的密码:Excel 2013 |尝试从一列列表的底部移动到下一列的顶部,excel,excel-2013,vba,Excel,Excel 2013,Vba,我试图在一个单元格块中填写一个列表:D2:E8向下移动。当我到达D8时,我希望能够按enter键(数字或常规)并移动到E2以开始列表的第二列。我意识到我可以tab,enter,tab,enter…,但是,我不想!这是我的密码: Sub returntotop() ' ' return_to_top Macro ' If Selection.Address = "Sheet3!$D$8" Then Application.OnKey "~", "ActiveCell.Offset(-
Sub returntotop()
'
' return_to_top Macro
'
If Selection.Address = "Sheet3!$D$8" Then
Application.OnKey "~", "ActiveCell.Offset(-6, 1).Select"
End If
End Sub
但是,它不起任何作用。您可以设计一个事件过程,以便在尝试从D8转到D9时激活E2-将以下内容粘贴到工作表模块中:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static mybool As Boolean
If Target.Address = Range("D8").Address Then
mybool = True
Exit Sub
End If
If mybool = True And Target.Address = Range("D9").Address Then
Range("E2").Activate
End If
mybool = False
End Sub
@爸爸,你能解决这个问题吗?如果不是的话,你很可能把上面的代码放错地方了,这表明你可能不熟悉目标代码模块,所以让我试着更好地解释一下
看到“项目资源管理器”窗口了吗?类似于此,默认情况下应显示在VBE窗口的左上角。如果是这样,请尝试通过它显示的树结构找到您的方法,这应该非常直观:
- 查找与您感兴趣的工作簿相关的VBA项目
- 在其下方,探索“Microsoft Excel对象”节点
- 双击与工作表相关的子节点。这将在主代码窗口中打开工作表对象代码模块
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Static ws As Worksheet
If Target.Address = Range("D8").Address Then
Set ws = Sh
Exit Sub
End If
If ws Is Sh Then
Set ws = Nothing
If Target.Address = Range("D9").Address Then
Range("E2").Activate
End If
End If
End Sub
选择D2:E8然后按ENTER键不适合您吗?你能说明你想要达到什么吗?我知道。我可以这么做,但我很懒,不想把它们都选出来。当我按Enter键时,我希望能够将选择从D8发送到E2。我是一个新手(非常新手)VBA“学生”,我想从中学习。我不能让它工作。告诉你们我的手机在Sheet3里有帮助吗?@Rupedaddy实际上你们需要把它放在Sheet3的代码里。你们都很棒!我以为我已经试着将上面的内容粘贴到Sheet3对象中,但显然我从来没有这样做过。现在我已经把它放在里面了。这是有道理的。感谢大家的帮助,以及与我这样的新手一起工作。我还有很长的路要走那么下一个问题,;如何在工作簿中的所有工作表中实现这一点?代码需要进入哪个位置?或者,需要添加什么才能实现这一点?