作者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/m.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