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




