以來源 ThisWorkbook.Worksheets(...)、ThisWorkbook 與 Application.ScreenUpdating 教學工作表、活頁簿與應用程式層級物件。
避免依賴目前選取工作表;理解 Workbook、Worksheet、Application 的層級;在程序結束前恢復應用程式設定。
薪酬程序必須寫到指定完成案例工作表,即使使用者目前停在其他工作表,也不應寫錯位置。
來源手動解法明示:Set ws = ThisWorkbook.Worksheets("18_完成案例"),並示範 Application.ScreenUpdating 控制。
先 Set ws;所有 Cells/Range 盡量以 ws. 限定;大量寫入前 Application.ScreenUpdating=False,結束前恢復 True。
這類物件操作不改變來源 8 人的數值結果;其作用是確保 8 筆既有結果被寫到正確工作表,且程序執行過程穩定。
ThisWorkbook 指含 VBA 程式碼的活頁簿;明確指定 ws 比 ActiveSheet 更可維護。ScreenUpdating 關閉後若未恢復,使用者介面可能保持不刷新狀態。
「請審查這段 VBA 是否所有 Range/Cells 都限定在指定 Worksheet,並確認 ScreenUpdating 在正常結束與錯誤處理時都會恢復。」
問題:如果程式改用 ActiveSheet.Cells(...),而使用者執行前停在錯的工作表,風險是什麼?
精簡解答: 結果可能被寫到錯誤工作表;來源建議用 ThisWorkbook.Worksheets(...) 正是為了避免此依賴。