Board logo

標題: Worksheet_Deactivate() 程序啟動失敗?? (已解決) [打印本頁]

作者: riceeric    時間: 2012-3-15 14:04     標題: Worksheet_Deactivate() 程序啟動失敗?? (已解決)

本帖最後由 riceeric 於 2012-3-16 09:34 編輯

我有個取消拖拉儲存格的事件Code,但是Worksheet_Deactivate()這個程序在同一個Excel檔切換到另一個工作表時會啟動這個事件
但是從這個工作表點開另一個Excel檔這個事件卻不會被執行
更奇怪的是我換部電腦嘗試這個檔案,有3台卻可以,有1台跟我的一樣不行
有高手可以幫我解惑嗎?
---------------------------------------Code為我為了鎖住拖拉儲存格以及複製功能寫的
  1. '啟動此工作表事件
  2. Private Sub Worksheet_Activate()
  3. '禁止拖拉儲存格
  4. Application.CellDragAndDrop = False
  5. Dim copyCtls As CommandBarControls
  6. Dim copyCtl As CommandBarControl
  7. Application.CutCopyMode = False
  8. '尋找所有 [複製] 按鈕, 其ID為19
  9. Set copyCtls = Application.CommandBars.FindControls(ID:=19)
  10. '將所有 [複製] 按鈕功能取消
  11. For Each copyCtl In copyCtls
  12. copyCtl.Enabled = False
  13. Next
  14. '取消 [複製] 快捷鍵
  15. Application.OnKey "^c", ""
  16. '工作表標籤右鍵所跳出來的 "ply" 工具列"移動或複製(M)..." 按鈕可移動並產生副本
  17. '因此一并禁止
  18. Application.CommandBars("ply").Controls(5).Enabled = False
  19. '以上應該就無法複製了
  20. End Sub


  21. '移出此工作表程序
  22. Private Sub Worksheet_Deactivate()
  23.     '系統恢復拖拉功能
  24.     Application.CellDragAndDrop = True
  25.     Dim copyCtls As CommandBarControls
  26. Dim copyCtl As CommandBarControl
  27.     '尋找所有 [複製] 按鈕, 其ID為19
  28.     Set copyCtls = Application.CommandBars.FindControls(ID:=19)
  29.     '將所有 [複製] 按鈕功能恢復
  30.     For Each copyCtl In copyCtls
  31.         copyCtl.Enabled = True
  32.     Next
  33.     '恢復 [複製] 快捷鍵
  34.     Application.OnKey "^c"
  35.     '恢復工作表標籤右鍵所跳出來的 "ply" 工具列"移動或複製(M)..." 按鈕功能
  36.     Application.CommandBars("ply").Controls(5).Enabled = True
  37.     '以上應該就可以複製了
  38. End Sub
複製代碼

作者: GBKEE    時間: 2012-3-15 15:36

回復 1# riceeric
從這個工作表點開另一個Excel檔這個事件卻不會被執行
該是用  ThisWorkbooK的 Deactivate 事件
  1. Private Sub Workbook_Deactivate()
  2.     Run "Sheet1.Worksheet_Deactivate"
  3. End Sub
複製代碼

作者: riceeric    時間: 2012-3-16 09:34

回復 2# GBKEE


    感激不盡,可以用了∼:)




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)