有没有任何理由不一一宣布我所有的变数?

我正在研究一个适度复杂的VBA程序,它有很多variables来跟踪一堆嵌套的子程序。 我已经通过将所有我的variables(除了在子声明中声明的那些variables或者dim:ed作为循环计数器)都声明为Public,将所有variables都称为“Variables”来完成此操作,所有variables都被整齐地分类和评论。

这一切都很好,代码运行很快,但事实上,我发现几乎没有使用公共/私人样本代码,并倾向于默认昏暗的事实给我一个讨厌的怀疑,我做错了什么。

是否有一个真正的缺点,做一大堆,或者我只是偏执狂?

我不是Globals的粉丝。 你可以进入国家的问题。 另外,您不能在全局设置中断点。

虽然没有什么是石头的,因为每一种情况都不一样,我想说的是:

  1. 在模块中,除非在模块之外访问,否则声明子集和函数是私有的。
  2. 在类中,除非需要,否则将所有内容声明为私有。 在需要公开字段的地方,使用属性。
  3. 在函数和子类中,声明例程中的所有内容,而不是全局variables。
  4. 将所有参数声明为ByVal,除非有理由传递ByRef。

我只在必要时使用全局variables。 有时你需要使用它们,但是我必须为自己辩护。 我已经支持了许多使用全局variables的工作簿,这些全局variables是在表单,用户button等事件处理程序中设置的,这些可以让你在debugging时感到头疼。

希望有所帮助。