Bryco 发表于 2007-3-9 11:16:27

模块拆分或表单代码

我有一个问题,关于哪一个更好(我知道的一个相对术语),所有代码都以这种形式存在,还是分成模块 我有一个带有一串按钮的表单,当用户选择一个按钮时,它会调用应用的模块 问题I'm遇到的问题与范围有关 我有一个实用函数,将当前层设置为变量,更改层,执行操作,然后将层更改回原来的状态 我的问题似乎是变量(全局声明)似乎正在失去其值 我知道如果我把所有代码都保存在一个模块内,我就不会't/O.039;没有范围问题 把所有代码放在一个地方有什么不对吗?

Bryco 发表于 2007-3-12 04:38:14

有#039;把所有代码放在一个地方没有错,比如一个表单等等。这一切都取决于你希望你的代码具有多大的可移植性和模块化
当我第一次开始编写vba时,我倾向于将所有代码放在一个地方,99%的时间都放在表单模块中
然而,我现在倾向于尽可能模块化地写作,并且只对直接相关的事件使用这种形式

Bryco 发表于 2007-3-12 10:10:07

因为我喜欢'未处理错误时中断#039;而不是&nbsp'闯入类模块'我试着在标准模块中写尽可能多的内容。从长远来看,将一些sub从表单中分离似乎更快,比如首先让它做它需要做的事情,然后将其融入表单中。在这一点上,你只是表单本身的错误陷阱
因为它是这样写的,所以它's更有可能用于另一个目的,因此将其保留在标准模块中
所以我想这是我不把所有代码都放在一个表单中的主要原因,如果我可以用其他的一些代码,就把它放在模块中

Kerry 发表于 2007-3-12 14:16:05

我的问题与范围有关 我试图编写一个实用函数来处理层/对象捕捉值,但当我从窗体跳到模块再跳回来时,我丢失了值 现在,在你说处理模块中的所有内容之前,我试图不在每个模块中复制相同的代码,因此是效用函数 此外,我无法在表单中删除常量值,只能删除一个模块 有什么想法吗?

Bryco 发表于 2007-3-12 14:20:02

你能用枚举代替常量吗?

Bryco 发表于 2007-3-12 14:22:06

HAND#039;我没想过要试试 我会在初始化表单中声明枚举,然后在错误检查select case中引用它吗?

Kerry 发表于 2007-3-12 14:22:49

常数来自RR'用户按下ESC时的错误检查代码 如果有更好的方法,我也许可以永远扔掉const

Bryco 发表于 2007-3-12 14:24:01

添加一个不可见控件,只要表单为'你有你的价值。

Kerry 发表于 2007-3-12 14:35:27

有道理

Bryco 发表于 2007-3-12 15:33:22


您只需在表单代码的文件范围中放置以下内容
Public Enum CloseMode
CloseMode_Close
CloseMode_Cancel
End Enum

页: [1] 2
查看完整版本: 模块拆分或表单代码