加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

EXCEL VBA中调用其他文件中的宏

(2013-10-15 16:20:00)
标签:

vba

教育

分类: 试用手记

描述: 在Excel VBA运行自定义宏时,有时可能会去调用其他文件比如Excel文件中定义的宏,在Office2013中貌似不能用打开的宏名直接调用。因此,你需要用Application.Run 去调用它。

实现:首先确保你的信任中心中关于宏设置,是启用所有宏,并信任VBA工程对象模型访问。

然后下面是个例子:

建立一个带宏的Excel文件,插入一个模块:

Sub test_hello()

    MsgBox "hello"

End Sub

这个文件中的模块是被调用的对象。

再建立一个Excel文件,创建下面的宏用来调用上面的对象。

Sub test_calling()

Dim xl_wb As Excel.Workbook

Dim xl_wb_name As String

With Application.FileDialog(msoFileDialogFilePicker     '使用文件对话框选取要调用宏所在的文件

    .AllowMultiSelect = False

        If .Show = -1 Then

            xl_wb_name = .SelectedItems(1)

        End If

End With

Set xl_wb = Workbooks.Open(xl_wb_name            '非必须打开这个文件,但这样操作方便关闭这个文件

Application.Run "'" & xl_wb_name & "'!test_hello"    '这里需要用分隔符单引号和连接符生成调用文件路径和宏名

xl_wb.Close savechanges:=False

End Sub

 

mxio

2013.10.15

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有