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

当vba函数存储在远程数据库的字段中时,是否可以(以及如何)在Excel中运行该函数?,excel,excel-2010,vba,Excel,Excel 2010,Vba,我正在创建一个XLS,不同的部门/人员将使用该XLS查看专门适用于该部门、人员或一切的不同报告 因为报告的数量将相当多,我想限制文件的大小。可用报告当前从SQL Server中提取并列出,然后用户在所需报告旁边输入一个“X”并点击生成 报告在工作表中生成,该工作表是动态创建的,并在文件关闭时删除 此时,我仍然需要为每个需要的特定报告提供一个模块。有些是几行,有些则更多,例如需要大量配置的透视表或需要大量格式的常规表等 是否可以从数据库中以文本形式检索vba,然后将其作为vba运行?您可以使用vb

我正在创建一个XLS,不同的部门/人员将使用该XLS查看专门适用于该部门、人员或一切的不同报告

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

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

此时,我仍然需要为每个需要的特定报告提供一个模块。有些是几行,有些则更多,例如需要大量配置的透视表或需要大量格式的常规表等


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

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

因此,可以通过动态地从字符串创建VBA代码,从远程存储的代码运行代码

Chip Pearson在这里做了很好的介绍:

也就是说,我并不推荐它,VBA代码不会占用太多空间,毕竟它只是文本,所以我很想把所有代码都放在工作簿中,它更简单,用户更容易,复杂度更低


如果您不想这样做,我建议您将所有代码放在外接程序中,然后将其与您创建的工作簿分开,但允许所有功能,而不存在动态生成代码的缺点

谢谢,这不是我希望的答案,但它告诉了我需要知道的内容。