[爆卦]excel工作表無法移動或複製是什麼?優點缺點精華區懶人包

為什麼這篇excel工作表無法移動或複製鄉民發文收入到精華區:因為在excel工作表無法移動或複製這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者Andy5566 (小妹56)看板Office標題[問題] EXCEL VBA 會影響到其它EX...


最近在設計公司要用到的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
soyoso: 觸發事件workbook_activate,就discopy,workbook_ 08/05 10:16
soyoso: deactivate就encopy 08/05 10:16

你可能也想看看

搜尋相關網站