VBA执行其他工作簿中的按钮代码

上传人:cn****1 文档编号:485304493 上传时间:2024-01-17 格式:DOCX 页数:5 大小:77.35KB
返回 下载 相关 举报
VBA执行其他工作簿中的按钮代码_第1页
第1页 / 共5页
VBA执行其他工作簿中的按钮代码_第2页
第2页 / 共5页
VBA执行其他工作簿中的按钮代码_第3页
第3页 / 共5页
VBA执行其他工作簿中的按钮代码_第4页
第4页 / 共5页
VBA执行其他工作簿中的按钮代码_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《VBA执行其他工作簿中的按钮代码》由会员分享,可在线阅读,更多相关《VBA执行其他工作簿中的按钮代码(5页珍藏版)》请在金锄头文库上搜索。

1、最近,在回答 excel 的 vab 相关问题时,遇到这样一个问题:操作表单用vbm执行后台打开另一张只读的工彳乍簿中的工作表 a ,并使用打开表日中的按钮控件sso如题,操作的”表单12站想后台打幵只读的至一张工作薄X中的工作表r井用表单12君中A列的数据負制 到工彳乍表捫的A列中,使用“工件表中的按钮控件执行命令?(工作薄X不是本人所做,只是想惜用别人的控 件),请犬神帮忙出克整的代码,新手求指导,万分感谢收窥刚开始觉得并不复杂,就是一个 复制 + 按钮代码调用就可以了,结果实际解决过程中遇到 了一些意想不到的问题。0K,整个过程开始。按问题的要求,先是一个工作簿,命名为“工作簿X.xls

2、”,将其中一个表命名为“工作表a”, 再添加一个 CommandButton 按钮:叵凹100%匚.)丁 e 丁昨bi 上|二作簿x,乩-幵跆赵页面公式加豈阅视国开发代码E12AECDEF123CoimnandEutTonl45670910随手写了 CommandButton1 的 Click 代码:CommandButtonlFrivate Sub CummarulButtuni_C1 i ck (.)iSuiTi = 0i Row = R:TLge (. a65536.). End (.xlUp.). Row For i = 1 To iFlowiSuiTi = iSujri + Cell

3、s (_i. 1.)NextCells (.3. 3.) - iSiaiTiErul Eub新建一个工作簿,添加一个CommandButton,看了下问题描述,在sheetl表的A列添加 了一行数据。OK,完成基础准备工作,开始写实际代码。偷懒,直接用 宏记录 功能产生原始代码:(BM)SuB 宏1();宏1宏Columns (A.: A.). SelectSelecti on. CopyWi ruluw s (.工 簿H. xls :). Acti v at e CulijjrirLE CA: A ). SelectActiveSheet. FasteEnd Sub加以改写:Fr i v a

4、t e SuB C umm arulBuiz t uni _C1 i ck (.)ActiveSheet. CdIuititl弓A: A). SelectActi訓iTuSiV. Selecti oil. CupyWorkbuoks. Upen Fil已nairie : =:、工作簿 x.xl Worksheets (工作表削).ActivateActiveSheet. CulijinrLE ( A: A ). SelectActiveSheet. Faste运行,复制功能完成!继续编写“按钮控件执行命令”Ac11 veSheet. CdIuititl弓A:A).SelectActiveShe

5、et. FasteActi vhSKhet. Cumm:iTulEhittuni C1 i ck运行。结果弹出错误:检查拼写函数拼写什么的都正确:C omm andBut t onl_C1i cl又试了其他几种方法,按钮的点击动作代码都无法执行。在 工作簿 X 内,编写测试代码,说明调用是没问题的:PriiEndi i-jjf i, jC omm :TLilEnit t onl _C1 i ck2-11D外部(从其他工作簿)调用就有问题了。再次检查函数声明,发现CommandButton1_Click用Private (私有)进行声明。ConniandBxittvnlPrivateinJut

6、CfifUft aitiEut t otA _C1 i ck ()Ti通常, vba 里自动声明的事件,都是 Private 属性。 继续测试。将 Private 去掉(即方法声明为 Public)|omm andBut t on2_Cl i ck ()IJ C umm:iTLilESiit t onl _C1 i ckEnd Sub再次执行代码,顺利通过!但是问题还没有解决。因为从问题者描述来看:如题,操作的表单123”想后台打开只眸另一张”工件簿)C中的:工作表計并用恚单12蓼中A列的数据長制 到”工1乍表护的A列中,使用工作表护中的按钮控件执行命令? (|工作薄X不是本人所做,只是想惜用

7、别人的控 件),请丈神帮忙出克整的代码新手求指导,万分雀谢收延也就是说,不能修改源代码,那么,上面的解决办法就行不通了。继续思考。通常,类似这种调用外部窗口,不能直接调用内置功能函数的情况下可以采取模拟操作的办法,如游戏外挂之类的。这种办法的思路,通常是获取目标的窗口焦点, 然后发送按键。查找SendKeys函数的资料:Excel VBA程:Send Keys方法将击键发送给活动应用程序ex pression.Send Keys(Keys, Wart)expression可选该表达式返回一Application对象Keys Briant类型r必需。要发送的键或者组合键r以文本方式表示。Wart

8、 Variant类型,可选*如果该值为True T则Microsoft Excel等待击键处理完后再将控制返回到宏;如果该值为False (或者省略 该参数)r则宏继续执行而不等待击键处理完毕讎代码BACKSPACE or BSBackspaceBREAKBreakCaps LockCAPSLOCKCLEARClearDelete 或 DelDELETE或DELEndEND“(波形符)EnterEnter (数字小键盘)ENTERESCAPE或ESCEscFl 3JF15F1 到 F15HELPHelpHomeHOME继续修改代码:ActiveSheet. CommandButtonl.Act

9、iyate Appli cati cm. SemlKeyE I EHTER) 运行,发现 CommandButton1 焦点是获取了,但不执行。手动在按钮上按回车键,按钮代 码不执行。继续找资料。发现某些控件,使用空格键来执行。手动在按钮上按 Space 键,按钮代码执行!OK,修改代码:ActiveSheet. CummandBui:tuni. ActivateAppl i c at i utl. S 已3丑:岂:/e ( EHTER) Appli cati un. SemitieyE (.运行,通过!全部代码如下:|(通用)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.护e : = 工作簿x.xlsWorksheetE (工作表注).ActivateActiveSheet. ColujinE (.A: A.). SelectActiveSheet. FasteAc11 veSheet. Comm泣血址tuni. ActivateAppli cati cm. SemlKeyE IEnd Sub

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号