[VBA ] 其他使用者開啟時,巨集不會執行?

看板Visual_Basic作者 (Mr. Grass)時間12年前 (2012/02/16 01:31), 編輯推噓2(2010)
留言12則, 3人參與, 最新討論串1/1
【狀況說明】 有N個使用者共同使用一個Excel檔,用以登錄、追蹤某項工作的進度。 因為檔案中設定了很多函數、格式化的條件, 為避免使用者修改這些設定,檔案被設定為保護且非共用的狀態。 但還是有使用者以複製貼上的方式, 將其他來源的函數、格式帶到這份檔案中, 使檔案管理者(也就是我)非常困擾,經常要手動將函數及格式改回來。 (因為檔案還要供給MIS人員分析,並定時寄送給另一個部門的人做為參考, 所以原來設定的函數及格式很重要) 為此,我寫了一個巨集,在這份檔案的工作表中, 禁止"貼上"這個功能(但保留選擇性貼上), 但發生了一個問題: 這個巨集在我的電腦上可以正常執行, 但在其他使用者的電腦上卻都沒有效用, 請問各位VBA的高手,其中是不是出了甚麼錯誤? 【編碼】 Private Sub Worksheet_Activate() With Application .CommandBars(3).Controls("剪下(&T)").Enabled = True .CommandBars(3).Controls("複製(&C)").Enabled = True .CommandBars(3).Controls("貼上(&P)").Enabled = False .CommandBars("Cell").Controls("剪下(&T)").Enabled = True .CommandBars("Cell").Controls("複製(&C)").Enabled = True .CommandBars("Cell").Controls("貼上(&P)").Enabled = False .CommandBars(1).Controls("編輯(&E)").Controls("剪下(&T)").Enabled = True .CommandBars(1).Controls("編輯(&E)").Controls("複製(&C)").Enabled = True .CommandBars(1).Controls("編輯(&E)").Controls("貼上(&P)").Enabled = False .OnKey "^x" .OnKey "^c" .OnKey "^v", "" End With End Sub 謝謝! -- 回憶 留給那年初夏的我們。 吉他游泳和單車 還有我的初戀 是微風裡青春的顏色。 你的初吻 是給喜歡你的男生 還是你喜歡的女生。 很多很多年後的你 一定會站在一扇藍色大門前 微笑著 看著我。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.225.7.61 ※ 編輯: hsnuest 來自: 125.225.7.61 (02/16 01:48)

02/16 08:55, , 1F
巨集可以關閉啊 安全性設定的問題吧?
02/16 08:55, 1F

02/16 22:29, , 2F
但是其他使用者啟用巨集的情況下也沒有運作呀
02/16 22:29, 2F

02/16 22:55, , 3F
我覺得你應該處理貼上時的剪貼簿資料
02/16 22:55, 3F

02/18 01:49, , 4F
@yauhh 能否說明得更清楚一點呢?我曾經試圖以「當貼上儲
02/18 01:49, 4F

02/18 01:52, , 5F
存格的格式及函數設定與參照儲存格不符時,就會回到貼上
02/18 01:52, 5F

02/18 01:54, , 6F
前的情況(回復上一步),但又覺得這樣做太拐彎抹角,所以才
02/18 01:54, 6F

02/18 01:55, , 7F
會認為直接禁止貼上應該是釜底抽薪的方法。
02/18 01:55, 7F

02/18 10:37, , 8F
錯,禁止貼上的操作只是表面的做法,你遮得了menu遮不了剪貼簿
02/18 10:37, 8F

02/18 10:37, , 9F
所謂釜底抽薪,是剪貼資料進來時,直接檢查剪貼資料才是.
02/18 10:37, 9F

02/18 10:44, , 10F
如果是我做,我傾向於朝這方面思考 http://0rz.tw/DHhnd
02/18 10:44, 10F

02/18 10:45, , 12F
-of-clipboard-before-pasting
02/18 10:45, 12F
文章代碼(AID): #1FE-lxe1 (Visual_Basic)