当它存储在远程数据库的字段中时,是否可以(以及如何)在Excel中运行vba函数?

时间:2012-10-12 11:13:57

标签: excel excel-vba excel-2010 vba

我正在创建一个XLS,不同的部门/人员将使用它来查看特定适用于该部门,个人或所有内容的不同报告。

因为报告的数量非常多,我想限制文件的大小。可用的报告当前从SQL Server中提取并列出,然后用户在所需报告旁边输入“X”并点击“生成”。

报告是在工作表中生成的,该工作表是即时创建的,并在文件关闭时删除。

目前,我仍然需要为每个特定报告提供一个模块。有些是几行,有些则更多,例如需要大量配置的数据透视表或需要大量格式化的通用表等。

是否可以从数据库中检索vba作为文本,然后将其作为VBA运行?

1 个答案:

答案 0 :(得分:1)

您可以动态添加带有VBA的写代码,但您需要允许访问VB对象模型的编程访问权限,并根据您的用户将使用的Excel版本更改各种信任设置。病毒扫描程序还可以删除引用VB对象模型的模块,因为它们将它们视为安全威胁。

所以,是的,您可以通过动态创建字符串中的VBA代码来远程存储代码运行代码

Chip Pearson在这里有很好的涵盖:http://www.cpearson.com/excel/vbe.aspx

那说,这不是我推荐的东西,VBA代码不会占用太多空间,毕竟它只是文本,所以我很想把所有代码留在工作簿中,它更简单,用户更容易,并发症更少。

如果您不想这样做,我建议您将所有代码放在一个加载项中,然后将其与您创建的工作簿分开,但允许所有功能都没有动态生成的缺点代码