模块拆分或表单代码
我有一个问题,关于哪一个更好(我知道的一个相对术语),所有代码都以这种形式存在,还是分成模块 ;我有一个带有一串按钮的表单,当用户选择一个按钮时,它会调用应用的模块 ;问题I';m遇到的问题与范围有关 ;我有一个实用函数,将当前层设置为变量,更改层,执行操作,然后将层更改回原来的状态 ;我的问题似乎是变量(全局声明)似乎正在失去其值 ;我知道如果我把所有代码都保存在一个模块内,我就不会';t/O.039;没有范围问题 ;把所有代码放在一个地方有什么不对吗?有#039;把所有代码放在一个地方没有错,比如一个表单等等。这一切都取决于你希望你的代码具有多大的可移植性和模块化
当我第一次开始编写vba时,我倾向于将所有代码放在一个地方,99%的时间都放在表单模块中
然而,我现在倾向于尽可能模块化地写作,并且只对直接相关的事件使用这种形式 因为我喜欢';未处理错误时中断#039;而不是 '闯入类模块';我试着在标准模块中写尽可能多的内容。从长远来看,将一些sub从表单中分离似乎更快,比如首先让它做它需要做的事情,然后将其融入表单中。在这一点上,你只是表单本身的错误陷阱
因为它是这样写的,所以它';s更有可能用于另一个目的,因此将其保留在标准模块中
所以我想这是我不把所有代码都放在一个表单中的主要原因,如果我可以用其他的一些代码,就把它放在模块中
我的问题与范围有关 ;我试图编写一个实用函数来处理层/对象捕捉值,但当我从窗体跳到模块再跳回来时,我丢失了值 ;现在,在你说处理模块中的所有内容之前,我试图不在每个模块中复制相同的代码,因此是效用函数 ;此外,我无法在表单中删除常量值,只能删除一个模块 ;有什么想法吗? 你能用枚举代替常量吗? HAND#039;我没想过要试试 ;我会在初始化表单中声明枚举,然后在错误检查select case中引用它吗? 常数来自RR';用户按下ESC时的错误检查代码 ;如果有更好的方法,我也许可以永远扔掉const 添加一个不可见控件,只要表单为';你有你的价值。 有道理
您只需在表单代码的文件范围中放置以下内容
Public Enum CloseMode
CloseMode_Close
CloseMode_Cancel
End Enum
页:
[1]
2