VBA執(zhí)行其他工作簿中的按鈕代碼_第1頁(yè)
VBA執(zhí)行其他工作簿中的按鈕代碼_第2頁(yè)
VBA執(zhí)行其他工作簿中的按鈕代碼_第3頁(yè)
VBA執(zhí)行其他工作簿中的按鈕代碼_第4頁(yè)
VBA執(zhí)行其他工作簿中的按鈕代碼_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、最近,在回答 excel 的 vab 相關(guān)問(wèn)題時(shí),遇到這樣一個(gè)問(wèn)題:操作表單用vbm執(zhí)行后臺(tái)打開另一張只讀的工彳乍簿中的工作表 a ,并使用打開表日中的按鈕控件sso如題,操作的”表單12站想后臺(tái)打幵只讀的至一張工作薄X中的工作表r井用表單12君中A列的數(shù)據(jù)負(fù)制 到工彳乍表捫的A列中,使用“工件表中的按鈕控件執(zhí)行命令?(工作薄X不是本人所做,只是想惜用別人的控 件),請(qǐng)犬神幫忙出克整的代碼,新手求指導(dǎo),萬(wàn)分感謝收窺剛開始覺(jué)得并不復(fù)雜,就是一個(gè) 復(fù)制 + 按鈕代碼調(diào)用就可以了,結(jié)果實(shí)際解決過(guò)程中遇到 了一些意想不到的問(wèn)題。0K,整個(gè)過(guò)程開始。按問(wèn)題的要求,先是一個(gè)工作簿,命名為“工作簿X.xls

2、”,將其中一個(gè)表命名為“工作表a”, 再添加一個(gè) CommandButton 按鈕:叵凹100%匚.)丁 e 丁昨叵凹100%匚.)丁 e 丁昨bi 上|二作簿x,乩-幵跆趙頁(yè)面公式加豈閱視國(guó)開發(fā)代碼E12AECDEF123CoimnandEutTonl45670910隨手寫了 CommandButton1 的 Click 代碼:CommandButtonlFrivate Sub CummarulButtuni_C1 i ck (.)iSuiTi = 0i Row = R:TLge (. a65536.). End (.xlUp.). Row For i = 1 To iFlowiSuiTi

3、= iSujri + Cells (_i. 1.)NextCells (.3. 3.) - iSiaiTiErul Eub新建一個(gè)工作簿,添加一個(gè)CommandButton,看了下問(wèn)題描述,在sheetl表的A列添加 了一行數(shù)據(jù)。OK,完成基礎(chǔ)準(zhǔn)備工作,開始寫實(shí)際代碼。偷懶,直接用 宏記錄 功能產(chǎn)生原始代碼:(BM)SuB 宏1();宏1宏Columns (A.: A.). SelectSelecti on. CopyWi ruluw s (.工 簿H. xls :). Acti v at e CulijjrirLE CA: A ). SelectActiveSheet. FasteEnd S

4、ub加以改寫:Fr i v at e SuB C umm arulBuiz t uni _C1 i ck (.)ActiveSheet. CdIuititl弓A: A). SelectActi訓(xùn)iTuSiV. Selecti oil. CupyWorkbuoks. Upen Fil已nairie : =:、工作簿 x.xl Worksheets (工作表削).ActivateActiveSheet. CulijinrLE ( A: A ). SelectActiveSheet. Faste運(yùn)行,復(fù)制功能完成!繼續(xù)編寫“按鈕控件執(zhí)行命令”Ac11 veSheet. CdIuititl弓A:A).

5、SelectActiveSheet. FasteActi vhSKhet. Cumm:iTulEhittuni C1 i ck運(yùn)行。結(jié)果彈出錯(cuò)誤:檢查拼寫函數(shù)拼寫什么的都正確:C omm andBut t onl_C1i cl又試了其他幾種方法,按鈕的點(diǎn)擊動(dòng)作代碼都無(wú)法執(zhí)行。在 工作簿 X 內(nèi),編寫測(cè)試代碼,說(shuō)明調(diào)用是沒(méi)問(wèn)題的:PriiEndPriiEndC omm :TLilEnit t onl _C1 i ck2-11D外部(從其他工作簿)調(diào)用就有問(wèn)題了。再次檢查函數(shù)聲明,發(fā)現(xiàn)CommandButton1_Click用Private (私有)進(jìn)行聲明。ConniandBxittvnlPri

6、vateinJut CfifUft aitiEut t otA _C1 i ck ()PrivateinTi通常, vba 里自動(dòng)聲明的事件,都是 Private 屬性。 繼續(xù)測(cè)試。將 Private 去掉(即方法聲明為 Public)|omm andBut t on2_Cl i ck ()IJ C umm:iTLilESiit t onl _C1 i ckEnd Sub再次執(zhí)行代碼,順利通過(guò)!但是問(wèn)題還沒(méi)有解決。因?yàn)閺膯?wèn)題者描述來(lái)看:如題,操作的表單123”想后臺(tái)打開只眸另一張”工件簿)C中的:工作表計(jì)并用恚單12蓼中A列的數(shù)據(jù)長(zhǎng)制 到”工1乍表護(hù)的A列中,使用工作表護(hù)中的按鈕控件執(zhí)行命令?

7、 (|工作薄X不是本人所做,只是想惜用別人的控 件),請(qǐng)丈神幫忙出克整的代碼新手求指導(dǎo),萬(wàn)分雀謝收延也就是說(shuō),不能修改源代碼,那么,上面的解決辦法就行不通了。繼續(xù)思考。通常,類似這種調(diào)用外部窗口,不能直接調(diào)用內(nèi)置功能函數(shù)的情況下可以采取模擬操作的辦法,如游戲外掛之類的。這種辦法的思路,通常是獲取目標(biāo)的窗口焦點(diǎn), 然后發(fā)送按鍵。查找SendKeys函數(shù)的資料:Excel VBA程:Send Keys方法將擊鍵發(fā)送給活動(dòng)應(yīng)用程序ex pression.Send Keys(Keys, Wart)expression可選該表達(dá)式返回一Application對(duì)象Keys Briant類型r必需。要發(fā)送的

8、鍵或者組合鍵r以文本方式表示。Wart Variant類型,可選*如果該值為True T則Microsoft Excel等待擊鍵處理完后再將控制返回到宏;如果該值為False (或者省略 該參數(shù))r則宏繼續(xù)執(zhí)行而不等待擊鍵處理完畢讎代碼BACKSPACE or BSBackspaceBREAKBreakCaps LockCAPSLOCKCLEARClearDelete 或 DelDELETE或DELEndEND“(波形符)EnterEnter (數(shù)字小鍵盤)ENTERESCAPE或ESCEscFl 3JF15F1 到 F15HELPHelpHomeHOME繼續(xù)修改代碼:ActiveSheet.

9、 CommandButtonl.Actiyate Appli cati cm. SemlKeyE I EHTER) 運(yùn)行,發(fā)現(xiàn) CommandButton1 焦點(diǎn)是獲取了,但不執(zhí)行。手動(dòng)在按鈕上按回車鍵,按鈕代 碼不執(zhí)行。繼續(xù)找資料。發(fā)現(xiàn)某些控件,使用空格鍵來(lái)執(zhí)行。手動(dòng)在按鈕上按 Space 鍵,按鈕代碼執(zhí)行!OK,修改代碼:ActiveSheet. CummandBui:tuni. ActivateAppl i c at i utl. S 已3丑:豈:/e ( EHTER) Appli cati un. SemitieyE (.運(yùn)行,通過(guò)!全部代碼如下:|(通用)Fr i v at e Siib C umm axulBui: t uni _C1 i ck (.)ActieShpet. ColuiTirLS I A: A ). SelectAc 11 v eW i ndj丁i*r .Select! g. C upyWurkboul;e. UperL Filed.護(hù)e : = 工作簿x.xl

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論