ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何用VBA代码控制回车后活动单元格跳转方向及区域?

如何用VBA代码控制回车后活动单元格跳转方向及区域?

作者:绿色风 分类: 时间:2022-08-17 浏览:247
楼主
kevinchengcw
Q: 如何用VBA代码控制回车后活动单元格跳转方向及区域?
A: 利用如下代码配合,可以良好的实现这一效果,代码如下:
thisworkbook中代码
  1. Private Sub Workbook_Open()
  2. Set OldRng = Sheet1.Range("a2")  '初始化旧单元格地址变量
  3. End Sub

要设定跳转方向及范围的工作表中的代码
  1. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  2. Application.EnableEvents = False '关闭事件响应
  3. Application.OnKey "~", "Jump"  '如果是按下大键盘的回车键则执行Jump程序,小键盘中回车符用"{ENTER}"表示
  4. Set OldRng = ActiveCell  '将当前活动单元格地址赋值给旧单元格位置记录的变量
  5. Application.EnableEvents = True  '打开屏幕刷新
  6. End Sub

模板中的代码
  1. Public OldRng As Range  '设定记录旧单元格位置的公共变量

  2. Sub Jump()
  3. With ActiveSheet   '于活动工作表中进行如下操作
  4.     If Intersect(.Range("a2:j16"), OldRng.Offset(0, 1)) Is Nothing Then  '如果上一次的活动单元格的右侧单元格不在设定的单元格范围中,则
  5.         If Intersect(.Range("a2:j16"), Cells(OldRng.Row + 1, 1)) Is Nothing Then   '判断下一行的第一个单元格是否在范围中,不在则跳到范围的第一个单元格
  6.             .Range("a2").Select
  7.         Else   '在范围中则跳到下一行的第一个单元格
  8.             .Cells(OldRng.Row + 1, 1).Select
  9.         End If
  10.     Else   '如果右侧单元格在范围中则选中为活动单元格
  11.         OldRng.Offset(0, 1).Select
  12.     End If
  13. End With
  14. End Sub


附示例文件。
代码控制回车后活动单元格跳转方向及区域范围.rar
2楼
wnianzhong
学习了,谢谢!

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap