CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  其他开发语言 >  Office开发/ VBA

VBA代码移植问题

楼主cuiyue4420(流畅)2005-06-08 17:03:42 在 其他开发语言 / Office开发/ VBA 提问

我在一个Excel表中写的VBA代码或者说是程序,怎样在别的Excel表中使用,是否非要用组件? 问题点数:100、回复次数:11Top

1 楼arden1019(CSCUM)回复于 2005-06-08 22:57:55 得分 100

另存为xla,添加到你的office目录的library下。然后在excel中使用加载宏Top

2 楼cuiyue4420(流畅)回复于 2005-06-09 21:44:04 得分 0

楼上的大哥,我的代码是在点击一个按钮执行的,保存xla的时候只能在  
  Excel窗口中,而不是在VB的界面中,用别的Excel文件加此宏时没有反应啊!Top

3 楼lovevba()回复于 2005-06-10 08:19:37 得分 0

你的问题不是很清楚?  
  如果想在EXCEL中,直接运行,   是可以的,按一楼的做法,在EXCEL界面中加入一个按钮(法方是,自定义—命令—宏—添加自定义按钮,)将按钮拖到工具栏中,右击“指定宏...”,找到你的宏。就行了。  
  不知你的VB界面是在VBA中做的吗?Top

4 楼arden1019(CSCUM)回复于 2005-06-10 08:25:47 得分 0

也许你的xla可以多些功能,比如在excel打开时候自动添加一个按钮,并让它指向你的宏程序入口。Top

5 楼icansaymyabc(学习与进步)回复于 2005-06-10 14:58:03 得分 0

别的Excel文件加此宏时虽然没有反应!但是你如在菜单中选择“工具”-〉“宏”-〉“宏”或按   Alt-F8   你就会看到多了很多宏,你选择需要的宏运行它即可。Top

6 楼cuiyue4420(流畅)回复于 2005-06-10 15:04:12 得分 0

我的代码根本没有保存成宏,只是保存了一个1.xla文件,放在了OFFICE里面的libary,但是我加载这个宏(1.xla,选择复选框,点确定),没有做任何事啊(我的代码是在C盘创建一个EXCEL文档)Top

7 楼LinYF1980(大羽飞鹤)回复于 2005-06-10 16:27:32 得分 0

我在学习Top

8 楼cuiyue4420(流畅)回复于 2005-06-13 13:48:08 得分 0

dingTop

9 楼cuiyue4420(流畅)回复于 2005-06-14 14:08:44 得分 0

dingTop

10 楼arden1019(CSCUM)回复于 2005-06-14 17:11:48 得分 0

在你的1.xla中的thisworkbook中添加这样的函数:  
  Private   Sub   Workbook_AddinInstall()  
  在函数体中可以添加一个按钮、菜单什么的操作,将按钮或菜单指向你的宏的主函数。  
   
  这样在加载宏后,就可以得到一个可以运行此宏的方法Top

11 楼arden1019(CSCUM)回复于 2005-06-14 17:13:38 得分 0

Const   APPNAME   As   String   =   "尺寸五金表"  
   
  Private   Sub   Workbook_AddinInstall()  
  '调用CreateMenu添加菜单  
        CreateMenu  
        MsgBox   "已经生成菜单至:工具--五金尺寸表"  
  End   Sub  
   
  Private   Sub   Workbook_AddinUninstall()  
  '调用DeleteMenu移除菜单  
          DeleteMenu  
          MsgBox   "已经移除菜单:工具--五金尺寸表"  
  End   Sub  
   
  Sub   DeleteMenu()  
          Dim   XLCommandBar   As   String  
          Dim   XLMenu   As   String  
          Dim   XLMenuItem   As   String  
          Dim   NewMenuItem   As   String  
           
          XLCommandBar   =   "Worksheet   Menu   Bar"  
          XLMenuItem   =   ""  
          NewMenuItem   =   APPNAME   &   "..."  
          XLMenu   =   Application.CommandBars(XLCommandBar).FindControl(msoControlPopup,   30007).Caption  
          On   Error   Resume   Next  
          Application.CommandBars(XLCommandBar).Controls(XLMenu).Controls(XLMenuItem).Controls(NewMenuItem).Delete  
          Application.CommandBars(XLCommandBar).Controls(XLMenu).Controls(NewMenuItem).Delete  
  End   Sub  
  Sub   CreateMenu()  
           
          Dim   NewItem   As   CommandBarButton  
          Dim   XLCommandBar   As   String  
          Dim   XLMenu   As   String  
          Dim   XLMenuItem   As   String  
          Dim   NewMenuItem   As   String  
          XLCommandBar   =   "Worksheet   Menu   Bar"  
          XLMenu   =   Application.CommandBars(XLCommandBar).FindControl(msoControlPopup,   30007).Caption   '我不敢确定30007这个ID总是ok  
          XLMenuItem   =   ""  
          NewMenuItem   =   APPNAME   &   "..."  
   
          On   Error   Resume   Next  
          Application.CommandBars(XLCommandBar).Controls(XLMenu).Controls(XLMenuItem).Controls(NewMenuItem).Delete  
          Application.CommandBars(XLCommandBar).Controls(XLMenu).Controls(NewMenuItem).Delete  
          On   Error   GoTo   0  
          If   XLMenuItem   =   ""   Then  
                  Set   NewItem   =   Application.CommandBars(XLCommandBar).Controls(XLMenu).Controls.Add  
          Else  
                  Set   NewItem   =   Application.CommandBars(XLCommandBar).Controls(XLMenu).Controls(XLMenuItem).Controls.Add  
          End   If  
          With   NewItem  
                  .Caption   =   NewMenuItem  
                  .OnAction   =   "mainsub"     '新菜单触发的过程名  
                  .FaceId   =   0  
                  .BeginGroup   =   True  
          End   With  
          Exit   Sub  
   
          If   Err   <>   0   Then  
                  MsgBox   "菜单创建错误,请重新尝试",   vbInformation,   "提示"  
          End   If  
  End   Sub  
  上面是我写的一个宏里面的thisworkbook,它添加了菜单。你可以参考一下:  
  看看这一句:.OnAction   =   "mainsub"     '新菜单触发的过程名  
  mainsub   是我的程序的主函数。  
  Top

相关问题

  • 关于代码的移植
  • delphi代码移植,VarArrayCreate的用法
  • Jbuilder和Eclipse下的代码移植?
  • VB6移植到.NET 如何移植? 代码规模7万行
  • ###############.......vba代码——>delphi......#############
  • 关于pb新旧版本代码移植的问题?
  • 如何把 pb7 的代码移植到 pb8
  • 关于VB的源代码移植到Delphi
  • 关于VB的源代码移植到Delphi
  • 高分求解简单题c++到java移植几句代码

关键词

  • 代码
  • excel
  • 函数
  • 界面
  • 文件
  • 选择
  • application
  • 宏
  • xlcommandbar
  • xla

得分解答快速导航

  • 帖主:cuiyue4420
  • arden1019

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo