久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

VBA專題10-6:使用VBA操控Excel界面之執(zhí)行命令以及激活功能區(qū)選項卡的兩種方法

 hercules028 2020-09-21

excelperfect

執(zhí)行在功能區(qū)和不在功能區(qū)中的命令 

在上篇文章中,,通過下面的語句來執(zhí)行MinimizeRibbon命令:

Application.CommandBars.ExecuteMso(idMso)

該方法僅接受1個參數:idMso,,指定命令的名稱(也被稱作該控件的標識符)。MinimizeRibbon是不在功能區(qū)中的一個命令,。

下面展示的是執(zhí)行不在功能區(qū)中的命令的另一個示例:

'啟動計算器程序

Application.CommandBars.ExecuteMso 'Calculator'

接下來的示例執(zhí)行功能區(qū)中的命令,它們通過功能區(qū)控件圖形化呈現:

'拆分活動窗口成窗格,移除拆分窗格

'可通過選擇視圖|窗口|拆分實現

'也可執(zhí)行下面的ExecuteMso方法

Application.CommandBars.ExecuteMso 'WindowSplitToggle'

Excel有超過10000idMso,,那是在功能區(qū)和不在功能區(qū)中命令的名字。

idMso可以是命令的名字,,內置選項卡的名字,或者其它內置元素的名字??梢栽诰W上搜索下載關于Excel內置控件名字的文檔,。

激活功能區(qū)選項卡的兩種方法 

下面介紹激活特定功能區(qū)選項卡的兩種不同方法,。一種是使用SendKeys方法模擬按鍵,就好像是手工按活動窗口中的鍵一樣,;另一種是使用XMLVBA代碼。

SendKeys方法

例如,,下面的VBA代碼模擬按下ALT,、AALT鍵:

Application.SendKeys '%A%'

將上面的語句放在Workbook_Open事件中,,在打開該工作簿時,將激活“數據”選項卡:

Private Sub Workbook_Open()

    Application.SendKeys '%A%'

End Sub

注意,,在Excel的有些版本中,在Excel窗口被裝載之前,,Workbook_Open事件中的SendKeys方法執(zhí)行得過早。為了解決這個問題,,可以使用OnTime事件在執(zhí)行Workbook_Open事件一至兩秒后,,發(fā)送按鍵,,如下面的代碼:

Private Sub Workbook_Open()

'1秒后執(zhí)行SendKeystrokes過程

    Application.OnTime Now +TimeValue('0:0:1'), 'SendKeystrokes'

End Sub

Sub SendKeystrokes()

    Application.SendKeys '%A%'

End Sub

下面列出了代表鍵的代碼:

為了避免不可預料的結果,總是使用SendKeys方法作為最后的手段,,并且確?;顒哟翱谑窍胍l(fā)送按鍵的正確的窗口。

XMLVBA代碼(Excel 2010及以后的版本)

激活功能區(qū)選項卡的另一種方法是使用XMLVBA代碼,。執(zhí)行下列步驟:

1. 下載CustomUI Editor并安裝,。

2. 創(chuàng)建新工作簿并將其保存為啟用宏的工作簿。

3. 關閉該工作簿并在CustomUI Editor中打開,。

4. CustomUI Editor中,,單擊插入并選擇Office 2007 Custom UI Part

選擇這個選項使工作簿與Excel 2007及后續(xù)版本兼容,。

5. 復制并粘貼下面的XML代碼:

<customUI xmlns='http://schemas.microsoft.com/office/2006/01/customui'onLoad='Initialize'>

</customUI>

onLoad是一個回調屬性,,有一個VBA過程的名稱賦給它,本例中的過程命名為Initialize,,當打開工作簿時調用此過程,。

6. 單擊Validate按鈕來檢查是否有錯誤。

7. 單擊Generate Callbacks按鈕生成Initialize回調過程:

' customUI.onLoad的回調

Sub Initialize(ribbon as IRibbonUI)

End Sub

復制該回調過程,,用于稍后粘貼到工作簿的標準VBA模塊中,。

8. 保存并關閉該文件。

9. Excel中打開該文件,。

由于Initialize過程仍然沒有準備執(zhí)行,因此會出現錯誤消息,,單擊“確定”,。

10. Alt+F11打開VBE

11. 插入一個標準模塊,,粘貼剛才復制的回調過程,,并修改代碼如下:

Public myRibbon As IRibbonUI

' customUI.onLoad的回調

Sub Initialize(ribbon As IRibbonUI)

    Set myRibbon = ribbon

End Sub

當在Excel中打開該工作簿時,執(zhí)行Initialize過程,,獲取功能區(qū)對象引用賦值給myRibbon對象變量,。使用對功能區(qū)的引用,可以接著通過myRibbon對象激活功能區(qū)選項卡(以及使功能區(qū)中的選項卡和控件無效),。

12. 保存,,關閉,,然后重新打開該工作簿。

要激活特定的內置功能區(qū)選項卡,,例如“數據”選項卡,,使用下面的代碼:

myRibbon.ActivateTabMso 'TabData'

如果要在打開工作簿時激活“數據”選項卡,在Initialize過程中插入上面的語句:

Sub Initialize(ribbon As IRibbonUI)

    Set myRibbon = ribbon

    '激活功能區(qū)的數據選項卡

    myRibbon.ActivateTabMso 'TabData'

End Sub

如果要激活自定義的功能區(qū)選項卡,,例如idMyCustomTab的自定義選項卡,,使用下面的代碼:

'激活idMyCustomTab的自定義選項卡

myRibbon.ActivateTab 'MyCustomTab'

注意,ActivateTabMso方法和ActivateTab方法僅適用于Excel 2010及后續(xù)版本,,不能用于Excel 2007

上面程序中ActivateTabMso方法的參數值“TabData”是idMso,,我們將在下面的文章中討論什么是idMso以及如何識別它們。

說明:本專題系列大部分內容學習整理自《Dissectand Learn Excel VBA in 24 HoursChangingworkbook appearance》,,僅供學習研究,。

歡迎在下面留言,完善本文內容,,讓更多的人學到更完美的知識,。

歡迎到知識星球:完美Excel社群,進行技術交流和提問,,獲取更多電子資料,。

完美Excel社群2020.9.20動態(tài)

#Excel公式技巧# Excel中數組乘法的3種方法

    本站是提供個人知識管理的網絡存儲空間,,所有內容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內容中的聯系方式,、誘導購買等信息,謹防詐騙,。如發(fā)現有害或侵權內容,請點擊一鍵舉報,。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多