我在一家银行的子公司工作,我们的“内部开发的 IT 系统”是用 VBA 编写的——几年前,银行只是对我们能用什么语言、不能用什么语言施加了限制。
最近,我们的业务量增长了,一些日常自动化任务已经花费了大约 6 个小时,尽管一些耗时的操作是通过 DLL 在 C++ 中完成的。最终,我们将到达这样的地步:日常任务将花费超过 24 小时,到那时,这将变得毫无意义。
因此,问题是,我们可以做些什么来加快速度。我考虑过改变语言。我希望的是
- 分析我们的代码(在 VBA 中非常有限)
- 比 VBA 更快(即编译)
- 语言和 Excel 之间可以互操作
- 可以从语言中调用 DLL 中存储的函数
- 银行里的人只知道 VBA,因此语言越接近 VBA 越好(即用 Qt/C++ 重写所有内容并不是解决方案)
我考虑过 VSTO,但 SO 上的一些帖子似乎令人沮丧。我们有什么选择?目前,我们有大约 50K 行代码,因此它不是几个 excel 文件。
非常感谢您的帮助,丹尼尔
答案1
这个问题可能属于 stackoverflow 而不是超级用户。
然而,尚待采取行动……
最合理的步骤是在 Visual Studio 环境中使用 Visual Basic。这可让您完全访问 Office 开发堆栈,提供 Excel 插件的简单开发,并为您提供从当前 VBA 代码迁移的路径。
VB 过去与 VBA 非常相似,但如今它已演变成完全不同的东西,因为它是 .NET 语言的一级成员。然而,它仍然保留了一些根源,因此有些熟悉。
这也将为吸引新的开发人员提供可能性,他们的技能可能在于更常见的语言,例如 C#,以供未来的开发使用。
Excel 应用程序在银行和金融业中的使用仍然非常普遍,这是解决该问题的常见方法。
也许我还应该提到一些可能的替代方法。虽然 Excel 文件可以通过其他语言访问,但实际上只能访问原始数据,而不能访问任何嵌入的逻辑。例如,PHP 和 Node.JS 都有可用于处理电子表格的库,我过去曾使用它们在服务器上处理电子表格,然后再传递给人类使用。但我怀疑这在这种情况下可能没那么有用。
也许真正的答案是咬紧牙关,开始将电子表格重新加工到更合适的环境中。您可以先将 SQL 数据库中的数据迁移回处理电子表格。然后开始将业务逻辑直接迁移到 SQL 服务器中或运行在后端的业务逻辑应用程序中的服务器进程中。