【问题标题】:Running personal.xlsb macro without opening excel运行personal.xlsb宏而不打开excel
【发布时间】:2016-11-26 08:29:06
【问题描述】:

我想在不打开我的实际 excel 文件的情况下运行存储在个人文件中的宏。

我如何修改下面的代码来实现这个

Set objExcel = CreateObject("Excel.Application")
objExcel.Application.Run "'D:\Sample SSRS\power View\AlertHistory.xlsm'!Module1.getDataImported"
objExcel.DisplayAlerts = False
objExcel.Application.Quit
Set objExcel = Nothing

我的另一个问题是我尝试录制一个宏,该宏打开 excel mysql 选项并附加数据,但没有记录该功能。我想将表 1 中的所有数据附加到我的 mysql 表中

【问题讨论】:

    标签: mysql excel vba macros


    【解决方案1】:

    我一直在为同样的问题而苦苦挣扎,最终我摸索着找到了解决方案。

    基本上,我:

    • 以编程方式打开我需要在其中运行个人宏的工作簿,

    • 使用Application.Run调出个人宏文件(PERSONAL.XLSB),

    • 然后指定要在其中运行的模块和宏。

    它似乎工作......不过,我不知道这是否是一个超级优雅的解决方案。

    下面是代码。请注意,Jan2017xlsm 是我需要在其中运行个人宏的文件的文件夹位置。

    【讨论】:

    • 鼓励链接到外部资源,但请在链接周围添加上下文,以便您的其他用户了解它是什么以及为什么存在。始终引用重要链接中最相关的部分,以防目标站点无法访问或永久离线。
    【解决方案2】:

    代码是正确的,您只需要更改路径,也许还需要更改模块名称。获取个人路径的一种简单而可靠的方法是取消隐藏您的个人文件(查看 > 取消隐藏...):

    然后执行“另存为”。不要真的保存它。只需按住 shift 并右键单击文件 > 单击“复制为路径”:

    然后粘贴到您的 VBScript 中。这将为您提供包含文件名的文件路径。在代码中,“Module1”是包含您要运行的代码的模块的名称。 “getDataImported”是您要运行的宏(在模块内)的名称。根据需要进行更改。

    记得查看 > 再次隐藏您的个人文件,否则每次打开 Excel 时始终可见。

    【讨论】:

    • 嗨,大卫,感谢您的回答。同意在vbs中保存个人文件的文件路径会运行它,但我需要在不同的excel上运行代码。与个人文件 A 一样,代码需要执行的实际数据文件是文件 B。我如何让它对文件 B 执行宏操作。
    最近更新 更多