作者rafaiero (路人甲)
看板Office
标题[算表] 储存格变动就执行会发生堆叠错误
时间Wed Jan 22 13:41:41 2020
软体:excel
版本:2016
https://i.imgur.com/9vfTRsm.jpg
绿底字不用管,原本执行都没问题
结果想把这段巨集套用每个工作表时
设在 thisworkbook
就悲剧了
而且还改不回原本正常执行的状态
是有什麽问题吗
这段如果是设在一般下执行是没问题的
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 223.136.82.245 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Office/M.1579671703.A.9DC.html
1F:→ soyoso: 因为每当selection写入range("b2")的值的时候01/22 14:00
2F:→ soyoso: 又会再次独发该事件,也就进入无穷回圈直到发生堆叠错误而01/22 14:00
3F:→ soyoso: 出现错误讯息01/22 14:00
4F:→ soyoso: 所以要有一个布林值、数字或文字来判断是否是第一次进入该01/22 14:00
5F:→ soyoso: 独发事件01/22 14:00
6F:→ soyoso: 并於写入前调整上述的值,和写入後调整回预设的值01/22 14:00
7F:→ soyoso: 另外excel版本并无查到2017,请以正确的版本01/22 14:01
8F:→ soyoso: 回文有误字修改下下,不是"独"发,是"触"发01/22 14:03
9F:→ rafaiero: 成功了,感谢01/22 14:08
10F:→ soyoso: 如不设布林值、数字或文字的方式的话01/22 14:24
11F:→ soyoso: 以巨集有判断是否为0和range.clear来看01/22 14:24
12F:→ soyoso: 也可以於最上方设个判断,判断是所触发事件的储存格是否为01/22 14:24
13F:→ soyoso: b201/22 14:24
14F:→ soyoso: range.address、range.row和range.column、或intersect01/22 14:24
15F:→ rafaiero: 我有个问题,那这样要怎麽保护工作簿,因为我有5个以上01/23 09:36
16F:→ rafaiero: 的栏位变动,第一次解锁後执行,那最後一次上锁时,是01/23 09:36
17F:→ rafaiero: 不是要在end sub前放Application.EnableEvents = False01/23 09:36
18F:→ rafaiero: 然後上锁,然後再Application.EnableEvents = True?01/23 09:36
19F:→ rafaiero: 这样应该不会在上锁时判断储存格变动,又再回圈回去?01/23 09:37
20F:→ soyoso: 什麽是工作簿?excel是工作表、活页簿,没有工作簿01/23 09:38
21F:→ Iories: Application.EnableEvent=False放在Private Sub..底下01/23 09:41
22F:→ Iories: Applicatioin.EnableEvents=True放在End Sub 上01/23 09:41
23F:→ Iories: 其余程式码包在中间即可01/23 09:41
24F:→ soyoso: 假设是保护工作表,测试保护或取消保护工作表,都无触发01/23 09:45
25F:→ soyoso: 内文workbook_sheetchange事件,所以是否要加,就要看实际01/23 09:47
26F:→ soyoso: 原po的情况了01/23 09:47
27F:→ rafaiero: s大说的是,是保护活页簿,版本是2016的01/23 09:48
28F:→ rafaiero: 感谢各位,回去试试看!01/23 09:49
※ 编辑: rafaiero (223.137.172.138 台湾), 01/23/2020 09:49:48
29F:→ rafaiero: 因为有先试过,上锁情形时,触发後解锁,於end sub前上 01/23 09:54
30F:→ rafaiero: 锁,跟每段end if後上锁,都会发生资料写不进去就错误, 01/23 09:54
31F:→ rafaiero: 才问说是不是解锁後要先停止触发,直到结束程序时上锁 01/23 09:54
32F:→ rafaiero: 後再开启触发 01/23 09:54
33F:→ rafaiero: 原本是触发後解锁,end sub前上锁,会错误,然後再试每 01/23 09:57
34F:→ rafaiero: 段触发事件的储存格变动程式後解锁endif後上锁,一样发 01/23 09:58
35F:→ rafaiero: 生错误 01/23 09:58
36F:→ soyoso: 什麽错误要说明,同内文所述的错误?或是其他错误讯息 01/23 09:59