[問題] EXCEL VBA 會影響到其它EXCEL檔案

看板Office作者 (小妹56)時間3年前 (2020/08/05 09:28), 編輯推噓0(002)
留言2則, 1人參與, 3年前最新討論串1/1
最近在設計公司要用到的EXCEL出勤表 設計好整個EXCEL後,發現若是使用者隨便複製其它欄位到另一個欄位貼上 原本的欄位的格式化條件就會被修改到,導致顯示異常 由於之後會有很多人使用,又難以要求每個人都能正確使用 所以開始研究VBA,從估狗找到一條可以禁止複製功能的VBA,也成功 但後來發現,一旦開啟VBA,其它EXCEL也會無法使用複製的功能 甚至出勤表關閉後,其它EXCEL依然無法使用複製功能 原先以為是巨集存放在的選項選到所有開啟的活頁簿 因此重新建立巨集,將巨集存放設定在出勤表的EXCEL中,但結果還是一樣....Orz 怕到時推出來,造成其它人的EXCEL無法複製造成他們的困擾 想請問一下,可不可以限制VBA只在出勤表的EXCEL使用,而不干涉其它EXCEL檔案? 又或是有什麼EXCEL複製貼上功能只會單純貼上值? 以下是EXCEL的巨集 Sub disCopy() Dim copyCtls As CommandBarControls Dim copyCtl As CommandBarControl Application.CutCopyMode = False '尋找所有 [複製] 按鈕, 其ID為19 Set copyCtls = Application.CommandBars.FindControls(ID:=19) '將所有 [複製] 按鈕功能取消 For Each copyCtl In copyCtls copyCtl.Enabled = False Next '取消 [複製] 快捷鍵 Application.OnKey "^c", "" '工作表標籤右鍵所跳出來的 "ply" 工具列"移動或複製(M)..." 按鈕可移動並產生 副本 '因此一并禁止 Application.CommandBars("ply").Controls(5).Enabled = False '以上應該就無法複製了 End Sub Sub enCopy() Dim copyCtls As CommandBarControls Dim copyCtl As CommandBarControl '尋找所有 [複製] 按鈕, 其ID為19 Set copyCtls = Application.CommandBars.FindControls(ID:=19) '將所有 [複製] 按鈕功能恢復 For Each copyCtl In copyCtls copyCtl.Enabled = True Next '恢復 [複製] 快捷鍵 Application.OnKey "^c" '恢復工作表標籤右鍵所跳出來的 "ply" 工具列"移動或複製(M)..." 按鈕功能 Application.CommandBars("ply").Controls(5).Enabled = True '以上應該就可以複製了 End Sub -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.194.41.178 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1596590891.A.267.html

08/05 10:16, 3年前 , 1F
觸發事件workbook_activate,就discopy,workbook_
08/05 10:16, 1F

08/05 10:16, 3年前 , 2F
deactivate就encopy
08/05 10:16, 2F
文章代碼(AID): #1VAWih9d (Office)