2013-06-26 31 views
-2

背景: 我目前正在开发一个大型excel工作簿(1张原始数据和约60张由数据生成的表格和图表)的移植项目, 。Excel中工作表函数和VBA模块的移植项目

工作表是由来自Excel中的工作表函数和VBA模块的混合方法生成的。VBA中的方法是标准的东西(循环,if语句,类,子方法,函数等)。

目标:我的任务是将尽可能多的(最好是所有)方法迁移到一个地方。 也就是说使所有方法都可以插入到所有工作表中的VBA模块或工作表函数中。

所有这些将在未来再次被迁移,但这次是C#。目前的迁移旨在成为这一步的准备工作。

迁移的目标是将所有方法收集到一个地方。这将改善结构,使得更容易地查看excel工作簿。

我的主要问题是:将方法迁移到VBA模块或作为工作表函数的最明智的选择是什么?

它甚至有可能将所有内容移植到工作表函数中吗? 工作表函数与VBA模块的限制是什么?

如果您需要关于任务的进一步说明,请给我反馈。 在此先感谢!

+0

如果你真的想把所有东西都移到一个位置,那么VBA而不是WSF就好像是答案,因为并不是所有可以在VBA中完成的事情都可以在WSF中完成。尽管如此,这仍然是其中一个“取决于”的问题:它不适合SO。 –

+0

你如何看待“取决于”?正如我所看到的,WSF为简单的操作提供了快速的结果,除此之外别无其他。你会同意吗?感谢您的答复。 – karamell

+0

“它取决于”意味着你的问题不包括所有需要的信息,以便做出关于什么是“最好”的事情的全面知情判断。如果不知道有关工作簿功能究竟是什么的详细信息,谁在使用它,参与调整的人员的相对优势,C#的“迁移”旨在让您等等,任何答案只是猜测。主要问题在于,如果在Excel中最好的方法是同时使用VBA和WSF,那么您的问题就是一个或者两种情况*。 –

回答

0

根据我的经验,工作表函数不能完成VBA中所有可能的工作,所以我很可能会建议你走向vba路线。工作表函数通常相对容易转换为VBA代码(因为您可以录制宏,而不是最简单,最快捷的方式,但可以完成工作)。如果电子表格中有未知数量的行或列(如果数据正在改变),那么我会特别考虑转到vba,因此您可以使用诸如lastrow和lastcolumn之类的东西,因此您不必更改公式范围等。