在安全环境中从javascript运行Excel VBA sub

在安全环境中从javascript运行Excel VBA sub,javascript,vba,excel,Javascript,Vba,Excel,我正在尝试使用javascipt实现excel taks的自动化。这些工作簿已经有VBA模块,所以我需要能够从javascript运行它们。我的挑战是,当我使用Javascript打开工作簿时,不会得到启用宏的提示。我无法在我的工作环境中更改我的信任中心设置,它们当前设置为“使用通知禁用所有宏”,这会要求用户在手动打开文件时通过弹出框启用宏 如何允许用户在从javascript打开工作簿时启用宏 错误消息和代码如下: SCRIPT1004:无法运行宏“C:\Users…\JPO Mdl” v07

我正在尝试使用javascipt实现excel taks的自动化。这些工作簿已经有VBA模块,所以我需要能够从javascript运行它们。我的挑战是,当我使用Javascript打开工作簿时,不会得到启用宏的提示。我无法在我的工作环境中更改我的信任中心设置,它们当前设置为“使用通知禁用所有宏”,这会要求用户在手动打开文件时通过弹出框启用宏

如何允许用户在从javascript打开工作簿时启用宏

错误消息和代码如下:

SCRIPT1004:无法运行宏“C:\Users…\JPO Mdl” v07.04.022-FY16MM.01.01_A.xlsm!更新链接()。宏可能不可用 此工作簿中可用,或者所有宏都可能被禁用


尝试
excel.Application.Run(wbA.name+'!update_links())您不包括工作簿路径-仅包括名称。我尝试了此操作,但这一次在没有路径的情况下出现了相同的错误。您能够使用VBA和相同的参数运行宏吗?您应该能够在即时窗格中输入
Application.Run(“'namehere.xlsm'!update_links”)
,然后按enter键-这将运行宏,并将告诉您这是否是宏权限问题。另外请注意,通话结束时不包括括号。谢谢Tim!我用你的符号让它在js和VBA中工作。我遗漏了一些引号。我不完全确定在没有用户启用宏的情况下它是如何运行的,但我不会为此而失眠。再次感谢!我很确定常规的宏安全性不会影响您在自动化Excel时所能做的事情:您已经完全控制了应用程序,并且假设您信任使用自动化运行的任何代码。请参见(例如)“默认情况下,当使用单独的程序以编程方式启动Excel 2013、PowerPoint 2013或Word 2013时,任何宏都可以在以编程方式启动的应用程序中运行”
function open_files(A, B, C) 
{ 
 var excel = new ActiveXObject("Excel.Application");
 excel.Visible=true;
 excel.DisplayAlerts = true;
 var wbA = excel.Workbooks.Open(document.getElementById(A).value);
 var wbB = excel.Workbooks.Open(document.getElementById(B).value);
 var wbC = excel.Workbooks.Open(document.getElementById(C).value);

 excel.EnableEvents = false
 excel.ScreenUpdating = false
 excel.Calculation = -4135 //xlCalculationManual enumeration

 var wb_collection = [wbA, wbB, wbC];
 excel.Application.Run(wbA.fullname + '!update_links()');
}