看板 Office 關於我們 聯絡資訊
軟體:excel 版本:2016 https://i.imgur.com/9vfTRsm.jpg
綠底字不用管,原本執行都沒問題 結果想把這段巨集套用每個工作表時 設在 thisworkbook 就悲劇了 而且還改不回原本正常執行的狀態 是有什麼問題嗎 這段如果是設在一般下執行是沒問題的 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.136.82.245 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1579671703.A.9DC.html
soyoso: 因為每當selection寫入range("b2")的值的時候01/22 14:00
soyoso: 又會再次獨發該事件,也就進入無窮迴圈直到發生堆疊錯誤而01/22 14:00
soyoso: 出現錯誤訊息01/22 14:00
soyoso: 所以要有一個布林值、數字或文字來判斷是否是第一次進入該01/22 14:00
soyoso: 獨發事件01/22 14:00
soyoso: 並於寫入前調整上述的值,和寫入後調整回預設的值01/22 14:00
soyoso: 另外excel版本並無查到2017,請以正確的版本01/22 14:01
soyoso: 回文有誤字修改下下,不是"獨"發,是"觸"發01/22 14:03
rafaiero: 成功了,感謝01/22 14:08
soyoso: 如不設布林值、數字或文字的方式的話01/22 14:24
soyoso: 以巨集有判斷是否為0和range.clear來看01/22 14:24
soyoso: 也可以於最上方設個判斷,判斷是所觸發事件的儲存格是否為01/22 14:24
soyoso: b201/22 14:24
soyoso: range.address、range.row和range.column、或intersect01/22 14:24
rafaiero: 我有個問題,那這樣要怎麼保護工作簿,因為我有5個以上01/23 09:36
rafaiero: 的欄位變動,第一次解鎖後執行,那最後一次上鎖時,是01/23 09:36
rafaiero: 不是要在end sub前放Application.EnableEvents = False01/23 09:36
rafaiero: 然後上鎖,然後再Application.EnableEvents = True?01/23 09:36
rafaiero: 這樣應該不會在上鎖時判斷儲存格變動,又再迴圈回去?01/23 09:37
soyoso: 什麼是工作簿?excel是工作表、活頁簿,沒有工作簿01/23 09:38
Iories: Application.EnableEvent=False放在Private Sub..底下01/23 09:41
Iories: Applicatioin.EnableEvents=True放在End Sub 上01/23 09:41
Iories: 其餘程式碼包在中間即可01/23 09:41
soyoso: 假設是保護工作表,測試保護或取消保護工作表,都無觸發01/23 09:45
soyoso: 內文workbook_sheetchange事件,所以是否要加,就要看實際01/23 09:47
soyoso: 原po的情況了01/23 09:47
rafaiero: s大說的是,是保護活頁簿,版本是2016的01/23 09:48
rafaiero: 感謝各位,回去試試看!01/23 09:49
※ 編輯: rafaiero (223.137.172.138 臺灣), 01/23/2020 09:49:48
rafaiero: 因為有先試過,上鎖情形時,觸發後解鎖,於end sub前上 01/23 09:54
rafaiero: 鎖,跟每段end if後上鎖,都會發生資料寫不進去就錯誤, 01/23 09:54
rafaiero: 才問說是不是解鎖後要先停止觸發,直到結束程序時上鎖 01/23 09:54
rafaiero: 後再開啟觸發 01/23 09:54
rafaiero: 原本是觸發後解鎖,end sub前上鎖,會錯誤,然後再試每 01/23 09:57
rafaiero: 段觸發事件的儲存格變動程式後解鎖endif後上鎖,一樣發 01/23 09:58
rafaiero: 生錯誤 01/23 09:58
soyoso: 什麼錯誤要說明,同內文所述的錯誤?或是其他錯誤訊息 01/23 09:59