Run 方法 運(yùn)行一個(gè)宏或者調(diào)用一個(gè)函數(shù),。 該方法可用于運(yùn)行用 Visual Basic 或 Microsoft Excel 宏語言編寫的宏,, 語法: Run(Macro, Arg1, Arg2, Arg3, Arg4, Arg5,Arg6, Arg7, Arg8, Arg9, _ Macro要運(yùn)行的宏名字(過程名)。 它可以是具有宏名稱的字符串,、表示函數(shù)所在位置的 Range 對象,, 這里以運(yùn)行VBA宏(跨工作簿調(diào)用)為例子講解 宏名稱有兩種形式: 形式1:工作簿名!模塊名.過程名 被調(diào)用的過程名在其所在的工程內(nèi),,名稱不是唯一的 也就是在不同的模塊內(nèi)有相同的過程名時(shí),, 那么在調(diào)用時(shí)需要加上所在模塊的模塊名字。 形式2:工作簿名!過程名 被調(diào)用的過程名在其所在的工程內(nèi),,名字是唯一的,。 另外,調(diào)用加載宏中的過程時(shí)可以不用加工作簿名,,直接指定過程名即可,。 Run 過程名這種形式調(diào)用時(shí),先會(huì)搜索本工作簿是否有指定的過程,, 所以大家在寫過程時(shí),,同一個(gè)工程內(nèi)盡是不要有兩個(gè)或多個(gè)同名的過程(事件是個(gè)例外),。 如果使用字符串,將在當(dāng)前工作表的上下文中對該字符串求值,。 Arg1-Arg30 可選 Variant 應(yīng)傳遞給函數(shù)的參數(shù),。 返回值:Variant 說明: 此方法不可使用命名參數(shù),,參數(shù)必須通過位置進(jìn)行傳遞。 Run 方法返回被調(diào)用的宏返回的任何值,。 如果將對象作為參數(shù)傳遞給宏,,該對象將轉(zhuǎn)換為相應(yīng)的值(通過對該對象應(yīng)用 Value 屬性)。 示例1: 準(zhǔn)備工作:新建兩個(gè)工作簿(假設(shè)分別為工作簿1,,工作簿2) 在工作簿1中添加一標(biāo)準(zhǔn)模塊,復(fù)制以下代碼: Sub test() Application.Run '工作簿2!模塊1.test1' '兩個(gè)標(biāo)準(zhǔn)模塊中均有test1過程,所以在調(diào)用時(shí)要指定模塊名 Application.Run '工作簿2!模塊2.test1' '模塊2的test1過程有兩個(gè)可選參數(shù) Application.Run '工作簿2!模塊2.test1', '測試調(diào)用模塊2的test1過程', _ 'Application.run方法演示' MsgBox '6*9=' & Application.Run('工作簿2!test2',6, 9) 'test2過程名在工作簿2中具有唯一性,,所以不需要加上模塊名 '另外,,由于test2是個(gè)函數(shù),有返回值,,可以用在表達(dá)式中,。 End Sub
在模塊1中復(fù)制如下代碼: Sub test1() MsgBox '模塊1' End Sub
Sub test1(Optional strPrompt As String ='測試顯示內(nèi)容', _ MsgBox prompt:=strPrompt, Buttons:=vbInformation + vbOKOnly,Title:=strTitle End Sub test2 = a * b End Function 準(zhǔn)備工作完成后運(yùn)行工作簿1中的test過程,。
將擊鍵發(fā)送給活動(dòng)應(yīng)用程序,。 語法: SendKeys(Keys, Wait) Keys 必選 Variant 要以文本形式發(fā)送給應(yīng)用程序的鍵或組合鍵。 Wait 可選,,如果為 True,,則 MicrosoftExcel 會(huì)等到處理完按鍵后將控件返回給宏; 說明: 本方法將擊鍵放到鍵盤緩沖區(qū)。某些情況下,,在調(diào)用要使用擊鍵的方法之前必須先調(diào)用此方法,。 Keys 參數(shù)可指定任何單個(gè)鍵或與 Alt、Ctrl 或 Shift 的組合鍵(或者這些鍵的組合),。 若要指定那些沒有屏幕回顯該字符的鍵(例如,Enter 或 Tab),,請使用下表所列的代碼來表示相應(yīng)的鍵,。 BACKSPACE {BACKSPACE} 或 {BS} Break {BREAK} Caps Lock {CAPSLOCK} Clear {CLEAR} Delete 或 Del {DELETE} 或 {DEL} 向下鍵 {DOWN} End {END} Enter(數(shù)字小鍵盤) {ENTER} Enter ~(波形符) Esc {ESCAPE} 或 {ESC} Help {HELP} Home {HOME} Ins {INSERT} 向左鍵 {LEFT} Num Lock {NUMLOCK} PageDown {PGDN} PageUp {PGUP} Return {RETURN} 向右鍵 {RIGHT} Scroll Lock {SCROLLLOCK} Tab {TAB} 向上鍵 {UP} F1 到 F15 {F1} 到 {F15} 還可指定與 Shift 和/或 Ctrl 和/或 Alt 組合使用的鍵。 要組合的鍵在鍵代碼之前添加 Shift +(加號(hào)) Ctrl ^(插入符號(hào)) Alt %(百分號(hào)) 示例:來自校長的公式引用轉(zhuǎn)換代碼。 Sub changeyinyong() Dim mrg As Range If TypeName(Selection) = 'Range'Then For Each mrg In Selection SendKeys '{F2}' '按F2鍵進(jìn)入編輯狀態(tài) SendKeys '+{home}' '按shift+home組合鍵全選公式部分 SendKeys '{F4}' '按f4鍵轉(zhuǎn)換 SendKeys '{enter}' '跳出單元格編輯模式 Next mrg MsgBox '單元格工作引用切換完成' End If End Sub Volatile 方法 用于將用戶自定義函數(shù)標(biāo)記為易失性函數(shù),,無論何時(shí)在工作表的任意單元格中進(jìn)行計(jì)算時(shí),, 語法: Volatile(Volatile) Volatile 可選 Variant 如果為 True,,則將函數(shù)標(biāo)記為易失性函數(shù),。 如果為 False,則將函數(shù)標(biāo)記為非易失性函數(shù),。 默認(rèn)值為 True 示例: Function mytime() |
|