| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1996 人关注过本帖
标题:事件触发次数(有能解答的大神没有?)
只看楼主 加入收藏
新忆随风
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2019-3-5
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
事件触发次数(有能解答的大神没有?)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Row > 1 Then
   ActiveCell.Offset(-1, 0).Select
Else
   MsgBox "已是最上一行"
End If
End Sub
以上VBA代码在Excel表格中为什么只能运行101行?求大神指点。

[此贴子已经被作者于2019-3-5 20:52编辑过]

搜索更多相关主题的帖子: 事件 触发 次数 Target If 
2019-03-05 13:32
沉默的痞子
Rank: 4
等 级:贵宾
威 望:12
帖 子:96
专家分:127
注 册:2015-10-7
收藏
得分:10 
只能运行101行是什么意思?
2019-03-09 08:01
新忆随风
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2019-3-5
收藏
得分:0 
回复 2楼 沉默的痞子
以上代码是只要上一个单元格不是第一行,就像上移动一个单元格,比如如果点击A101它可以运行至A1,但点击A102它只运行至A2。

[此贴子已经被作者于2019-3-12 15:41编辑过]

2019-03-12 15:39
jjww2999
Rank: 2
等 级:论坛游民
帖 子:1
专家分:10
注 册:2012-5-26
收藏
得分:10 
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Static s

If Target.Row > 1 Then
   ActiveCell.Offset(-1, 0).Select
Else
   MsgBox "已是最上一行"
End If
s = s + 1
Debug.Print s
End Sub


验证属实。
个人认为,每次的事件都自动陷入循环造成堆栈积累,那么就会有堆栈积累的限制,所以才有101次的限定就会自动强行退出循环。
2019-03-13 19:57
快速回复:事件触发次数(有能解答的大神没有?)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016787 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved