【发布时间】:2020-09-10 13:18:40
【问题描述】:
我认为自己是一个非常称职的 Excel VBA 程序员。在我职业金融生涯的几年中,我创建了很多有用的程序(UDF、一些具有多种用户表单的小型或大型应用程序以及许多易于操作的小型应用程序)。
我决定向前迈出一步,尝试通过我的工作获利。我看过 VBA 混淆器、VBA 编译器和类似的东西,但遗憾的是,对混淆器的保护似乎很弱(至少我是这么认为的,我不能发表评论,因为我只知道 VBA 语言,我不是计算机科学大师)或在编译器的情况下,编译会大量修改我的代码,以至于 1/3 无法正常工作(我曾尝试调试它,但无论我做什么都无法正常工作)。
我检查了我拥有的代码量,大约是 13-14 千行。 现在 - 我是否值得甚至有可能从头开始将所有这些东西翻译成 VB.NET 或 C#? 我对其中任何一个都没有经验,我只在 VBA 中编程过。我一直在阅读,由于用户表单的差异,没有 UDF,我在我的子程序和类似的东西中使用它,似乎几乎不可能转换和重写代码。如果可能的话,有人能指出我正确的方向吗,什么是更好的选择?
我现在很迷茫,因为我没有经验,而且我知道没有开发人员可以“引导”我进入这个或那个方向。什么是“翻译”我的 VBA 代码并从中制作工作应用程序的好方法? 我知道这并不容易,但如果我需要几个月的下班后工作,我会去做。问题是我不想完全浪费时间,我想把它做好。
感谢您的所有想法和帮助。我希望我的信息不是完全题外话。
【问题讨论】:
-
我不会丢弃我的 VBA 代码。我很久以前就决定 c# Interop 既慢又麻烦。并且需要不同版本的 Interop,具体取决于您使用的 Word 版本。 Interop 使用脚本语言作为需要 Excel 解析文本语言的接口。因此,在读取和写入单元格值时,我在 c# 中使用 ole 连接字符串作为接口。每当我需要做更复杂的事情时,我仍然使用 VBA,这在大多数情况下非常有效。即使 VBAI 从未使用过 OPEN XML(这是一个选项),仍有一些事情无法自动化。