Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从另一个Excel工作簿调用函数

从另一个Excel工作簿调用函数
EN

Stack Overflow用户
提问于 2015-06-02 00:38:41
回答 2查看 2.1K关注 0票数 0

我在一个工作表中有一堆数据,我正尝试根据几列中的值将这些数据保存到各个工作簿中。我正在采取的方法(不管是好是坏!)就是将相关的工作表(和宏)复制到一个新的工作簿中,用适当的名称保存它(假设是temp.xlsx),然后通过删除不相关的行(称为deleteInfo的函数)来清除该新工作簿中的数据。根据公司政策,这一切都必须在不更改原始工作簿的情况下完成。

我可以复制的东西没有问题,但我有严重的问题调用新的工作簿中的宏。

我试过了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Application.Run "'temp.xlsx'!deleteInfo"

ActiveWorkbook.Application.Run deleteInfo

Application.Run ("'C:\user\.....\temp.xlsx'!deleteInfo")

但都没有奏效。

EN

回答 2

Stack Overflow用户

发布于 2015-06-02 01:39:26

对于这样的任务,您应该考虑创建一个包含VBA宏的Excel外接程序(文件扩展名.xla),同时保留包含数据宏的常规工作簿(扩展名.xls或.xlsx)。更多细节在微软在线文章:https://support.office.com/en-ca/article/Add-or-remove-add-ins-0af570c4-5cf3-4fa9-9b88-403625a0b460希望这能有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2015-06-12 10:54:52

通过导出保存宏的模块,复制原始工作簿并将其导入到新工作簿中,解决了此问题。在前面的模块中,pathName被定义为原始文件文件夹的路径(pathName = ActiveWorkbook.Path)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Sub exportMacro(ByVal pathName As String)
   'Export the macro to save as .bas file

    On Error Resume Next
    Kill pathName & "\Module6.bas" 'Delete previously exported file
    On Error GoTo 0
    ActiveWorkbook.VBProject.VBComponents("Module6").Export pathName & "\Module6.bas"
End Sub


Sub importMacro(ByVal pathName As String)
    'import the macro to a new workbook

     ActiveWorkbook.VBProject.VBComponents.Import pathName & "\Module6.bas"

End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30585558

复制
相关文章

相似问题

添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文