【发布时间】:2015-08-18 04:08:51
【问题描述】:
我一直在出于多种目的在工作中应用 VBA。我注意到用户对表单(带有许多宏)所做的“点击”越多,错误率就越高。我想知道而不是需要 3 次单独点击的 3 个单独的功能 - 我应该将所有这些功能集中到一个子模块中以便于使用吗?
临床工作人员表示这对他们来说效果最好,但在代码优化和保持不同功能分开方面 - 这不会让事情变得非常混乱吗?由于我仍在学习 VBA,我想我会求助于迄今为止对我帮助很大的专家社区。p>
对于您对此的想法以及我如何创建最佳实践 VBA 标准来遵守的任何和所有 cmets,我将不胜感激。
我创建的静态复制函数和每月计算函数就是一个例子。为了完成每月计算,它从摘要选项卡中提取数据并将其与静态数据进行比较。然而,要首先捕获静态数据 - 用户需要单击静态数据宏。我已经将静态快照功能和月度报告功能分开了,但我想知道是否可以将这两者组合成一个功能。可读性方面没有问题(因为我有 cmets 解释每个部分) - 但标准方面,这会不明智吗? 如果这个问题的性质有点宽泛,我深表歉意。
【问题讨论】:
-
将常见任务捆绑在一起通常是个好主意。只要您仍然将各种任务分离到它们自己的函数中并从用户触发的主函数中调用它们,它就不应该使代码变得更加混乱。
-
谢谢大家!我附上了 2 个不同功能的一些屏幕截图作为示例。我想我可以将静态和每月计算结合到一个“点击”宏中,但如果这是不好的做法,请尽早让我知道,这样我就不会开始创建糟糕的编码标准。
-
我认为在提取静态数据和执行计算之间不需要用户交互(除非静态数据尚未准备好,但在这种情况下也无法进行计算)。此外,您应该组合功能而不是代码,只需创建一个新的 Sub 一个接一个地调用 2 个单独的函数 - 代码应尽可能保持模块化,每个函数执行一个明确的任务,并且只有一个 (分而治之的策略)
-
看看你的截图,stackoverflow.com/questions/10714251/… 有一些非常好的建议,值得一读。
-
当涉及到用户时,想想“iphone 方式”(名字的第一个)。如果用户可以在 1 次单击中完成所有操作,那就不要做更多了,仅此而已。唯一可以添加多次点击的情况是当您想要进行“星际迷航第一代”重拍时
标签: vba excel code-standards