我有一个旧的Excel 4宏,我用它来运行每月发票。它大约有3000行,有许多Excel 5对话框工作表(用于对话框)。我想知道将其更改为VBA的最简单方法是什么,以及它是否值得。另外,如果我将其转换为VBA后,如何在其中创建独立的应用程序?
发布于 2008-09-18 08:52:53
我之前已经尝试过了,最后你确实需要像Biri所说的那样重写它。
当我们公司从Windows NT升级到Windows XP时,我做了相当多的这方面的工作。我经常发现,完全不查看旧代码,从头开始更容易。你可以花很多时间试图弄清楚Excel4做了什么,尤其是围绕着“奇怪的”对话框符号。最后,如果你知道输入是什么,输出是什么,那么重写往往会更有效率,更干净。
在某些方面,是否使用VBA是另一个问题,但是VBA相当强大和可扩展,所以尽管在许多情况下我更喜欢使用其他工具,如.NET,但它工作得很好,而且易于部署。
这是否值得呢?如果你可以说你再也不需要改变你的Excel4宏了,那么也许就不需要了。但在商业中,总会有一些事情发生变化,比如税率,特别是年终的事情。考虑到很难找到支持Excel4的人,甚至找到关于它的文档,我想说不迁移到VBA是有风险的,但这是需要权衡的。
发布于 2011-09-28 03:43:03
(免责声明:我开发了Excel-DNA库)
与其将宏移到使用COM自动化对象模型的VBA中,不如将其移到与Excel-DNA库一起运行的VB.NET (或C#)中。
Excel-DNA允许您使用C API,它与宏语言非常相似。对于每个宏命令,就像对话框一样,都有一个接受相同参数的C API函数。例如,DIALOG.BOX的等价物是xlfDialogBox -在这个主题中有一些讨论和示例:http://groups.google.com/group/exceldna/browse_thread/thread/53a8253269fdf0a5。
这样做的一大好处是,您可以逐步更改代码的一部分,以使用COM自动化接口- Excel-DNA允许您混合和匹配COM接口和C API。
发布于 2008-09-18 08:17:02
AFAIK没有可能以某种方式转换它。基本上,您必须在VBA中重写。
如果已转换为VBA,则不能作为独立应用程序运行。正如VBA所说的Visual Basic for Application,它生活在应用程序(Word、Excel、Scala等)中。
您必须学习一种标准语言(而不是宏语言)来创建独立的应用程序。但你必须学到比语言本身更多的东西。您必须学习不同的技术,例如数据库处理而不是Excel工作表处理,打印而不是Excel打印,等等。所以基本上你会失去很多功能,这是很明显的,如果你使用Excel。
https://stackoverflow.com/questions/90858
复制相似问题