最重要的要求是在开始编码之前完成整体设计。例如:
- 所有表单必须具有相同的样式。帮助和错误信息必须以相同的方式在每个表格上提供。如果用户可以将表单分成两组,那么您就失败了。
- 数据库设计必须以对每个表、其关系和属性的完整书面描述完成。
- 必须定义每个主要宏的用途和参数。如果宏 A1 仅用于服务宏 A,则 A1 不是主要宏,只有 A 的作者需要知道其详细信息,直到编码完成。
- 同意文档样式和详细程度。如果应用程序需要在 6 个月或 12 个月后增强,您应该能够像自己处理其他宏和表单一样轻松。
- 如果你们中的一个人认为在编码开始后需要对设计进行更改,则必须将此更改记录在案,并征得对方同意,并将更改规范添加到主规范中。
很多年前,我讲过(电子数据交换 (EDI))。使用 EDI,规范分为两部分,一组组织为消息发送者提供应用程序,另一组为消息接收者提供应用程序。我经常使用一个示例在我的讲座中帮助我的听众理解完整、明确的规范的重要性。
我想要两个形状,一个 E 和一个反向 E,我可以将它们组合在一起形成一个 10 厘米的正方形。我不在乎它们是由什么制成的,只要它们完美地结合在一起。
如果我把这个任务交给一个组织,这个规范就足够了。一个组织可能使用纸板,另一种金属,但我不在乎。但假设我要求一个组织创建 E,另一个组织创建反向 E。如果我要得到我的 10 厘米见方,我的规格必须有多详细?我会建议:E 的材料、厚度和尺寸。我的听众会竞相提出越来越多必须匹配的模糊特征:密度、颜色、图案、纹理等。
我并不总是相信我的听众听了我演讲的其余部分,因为他们正在寻找一种可以限制所有其他人的特征。无论如何,我已经理解了我的主要观点,这就是为什么 EDI 规范没有令人难以置信的详细。
您的情况不会那么困难,因为您和您的同事可能在同一个房间,并且可以随时交谈。但是我希望这个例子可以帮助你理解如果你一开始不同意完整的设计,那么你的两个部分之间的接口是多么容易变得不那么无缝。正是这些小假设——虽然你知道我是这样做的——这会扼杀你的应用程序。
新版块
好吧,我之前的大部分建议可能都不适合你的情况。
因此,您正在尝试修改不是用您不知道的语言编写的代码。祝你好运;你会需要它。
我认为范围将是您最大的问题。大多数现代语言都有命名空间,允许您根据需要为变量或例程提供尽可能多或尽可能小的范围。 VBA 只有三个级别。
在函数或子例程中声明的变量自动为该函数或子例程私有。
在模块内声明为Private 的变量对其他模块中的函数和子例程不可见,但对模块内的任何函数或子例程可见。
在模块中声明为Public 的变量对项目中的任何函数或子例程都是可见的。
在表单中声明的任何内容都是该表单私有的。如果表单希望将值传递给外部函数或子例程,则可以通过写入公共变量或将其作为参数传递给公共函数或子例程来实现。
避免命名冲突在 VBA 帮助中提供了有用的建议。
表单和模块名称在合并项目中必须是唯一的。您将无法避免拥有其他函数和子例程可见的常量、变量、函数和子例程。 避免命名冲突提供了一种方法。我成功使用的一种方法是将应用程序划分为子应用程序,如果需要,还可以划分子子应用程序,并为每个子应用程序分配一个前缀。如果每个公共常量、变量、函数和子例程名称都有适当的前缀,您就可以模拟命名空间类型控制。