运行personal.xlsb宏而不打开excel

时间:2016-11-26 08:29:06

标签: mysql excel vba macros

我想在不打开我的实际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表

2 个答案:

答案 0 :(得分:1)

代码是对的,您只需要更改路径,也可以更改模块名称。获取个人路径的简单而有力的方法是取消隐藏您的个人文件(查看>取消隐藏......):

1: get personal path

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

enter image description here

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

请务必查看>再次隐藏您的个人文件,否则每次打开Excel时它都会一直显示。

答案 1 :(得分:0)

我正在努力解决同样的问题,最终我找到了解决问题的方法。

基本上,我:

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

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

  • 然后指定模块,然后在其中运行宏。

它似乎有效...但我不知道它是否是一个超级优雅的解决方案。

以下是代码。请注意Jan2017xlsm是运行个人宏所需文件的文件夹位置。

img