小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

如何利用VBA代碼,屏蔽EXCEL工作表的復(fù)制功能

 hjr231 2019-02-12

大家好,我們今日繼續(xù)講解VBA代碼解決方案的第50講內(nèi)容:如何利用VBA代碼,有效的屏蔽工作表的復(fù)制功能。為什么要進(jìn)入這節(jié)的內(nèi)容呢?因?yàn)橛袝r(shí)我們并不希望用戶對(duì)工作表中的數(shù)據(jù)進(jìn)行復(fù)制粘貼操作,這些是我的私有財(cái)產(chǎn),不能讓人輕易的獲得,那么該怎么辦呢?此時(shí)我們可以把所有的復(fù)制功能都屏蔽掉,這里會(huì)利用三個(gè)知識(shí)點(diǎn)

一:CommandBars對(duì)象的FindControl方法。

應(yīng)用于CommandBars對(duì)象的FindControl方法返回一個(gè)符合指定條件的CommandBarControl對(duì)象。語法如下:expression.FindControl(Type, Id, Tag, Visible, Recursive)

參數(shù)

a) expression是必需的,返回一個(gè)CommandBars對(duì)象。

b) Type是可選的,要查找控件的類型。

c) Id是可選的,要查找控件的標(biāo)識(shí)符。

d) Tag是可選的,要查找控件的標(biāo)記值。

e) Visible是可選,如果該值為True,那么只查找屏幕上顯示的命令欄控件。默認(rèn)值為False。

f) Recursive是可選的,如果該值為True,那么將在命令欄及其全部彈出式子工具欄中查找。此參數(shù)僅應(yīng)用于CommandBar對(duì)象。默認(rèn)值為False。

特別注意:如果沒有控件符合搜索條件,那么FindControl方法返回Nothing。

二:利用CellDragAndDrop 屬性設(shè)置單元格的拖放功能,如果允許使用單元格拖放功能,則該值為True,如果不允許則該值設(shè)為false.

三:關(guān)于應(yīng)用于Application 對(duì)象的OnKey方法,這個(gè)知識(shí)點(diǎn)在我之前的文章中講解過,這里給大家復(fù)習(xí)一下:應(yīng)用于Application 對(duì)象的OnKey方法指定特定鍵或特定的組合鍵運(yùn)行的過程,語法如下:expression.OnKey(Key, Procedure)

參數(shù):a) expression是必需的,該表達(dá)式返回一個(gè)Application 對(duì)象。

b) Key是必需的,用于表示要按的鍵的字符串,具體請(qǐng)參閱VBA中的幫助。

c) Procedure是可選的,表示要運(yùn)行的過程名稱的字符串,如果將Procedure參數(shù)指定為空文本(''),則不發(fā)生任何操作。

下面我們看如何利用VBA代碼達(dá)到屏蔽復(fù)制功能的作用,如下面的代碼:

Dim CmdCtrls As CommandBarControls

Dim Cmd As CommandBarControl

Sub MyProCopy()

Set CmdCtrls = Application.CommandBars.FindControls(ID:=19)

For Each Cmd In CmdCtrls

Cmd.Enabled = False

Next

Application.CellDragAndDrop = False

Application.OnKey ('^c'), ''

End Sub

Sub MyStaCopy()

Set CmdCtrls = Application.CommandBars.FindControls(ID:=19)

For Each Cmd In CmdCtrls

Cmd.Enabled = True

Next

Application.CellDragAndDrop = True

Application.OnKey ('^c')

End Sub

代碼解析:

第1、2行代碼在模塊頂部聲明兩個(gè)模塊級(jí)的變量。

第3行到第10行代碼ProCopy過程,屏蔽工作表中所有的復(fù)制功能。其中第4行到第7行代碼使用FindControls方法將所有與'復(fù)制'相關(guān)的命令欄控件賦給變量CmdCtrls后將其Enabled設(shè)置為False。

第8行代碼屏蔽單元格拖放功能,利用了應(yīng)用于Application對(duì)象的CellDragAndDrop屬性

第9行代碼屏蔽<Ctrl+C>組合鍵功能。

第11行到第18行代碼StaCopy過程,恢復(fù)所有的復(fù)制功能。

下面看代碼窗口:

如何利用VBA代碼,屏蔽EXCEL工作表的復(fù)制功能

其次:運(yùn)行MyProCopy后:我這里按鈕1是關(guān)聯(lián)的MyProCopy,此時(shí)復(fù)制不起任何作用,在A1單元格中也不存在填充柄。

如何利用VBA代碼,屏蔽EXCEL工作表的復(fù)制功能

最后我們運(yùn)行MyStaCopy,我這里關(guān)聯(lián)的是按鈕2,如圖,復(fù)制可以了,也出現(xiàn)了填充柄。

如何利用VBA代碼,屏蔽EXCEL工作表的復(fù)制功能

今日內(nèi)容回向:

1 如何做到復(fù)制不起作用呢?大概的思路是怎么樣的?

2 本文講到了三個(gè)知識(shí)點(diǎn),讀者是否清楚了呢?

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多