0

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

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

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

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

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

4

1 回答 1

1

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

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

Chip Pearson 在这里很好地介绍了这一点:http ://www.cpearson.com/excel/vbe.aspx

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

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

于 2012-10-12T20:41:08.063 回答