Rogue 发表于 2008-8-19 06:51:19

通用VBA问题

Im(尝试)编写一些模块级代码来对表单执行操作,并传递表单上的控件
在本演示中,我使用一个框架,并将框架对象作为参数传递给子模块,所有这些都在同一个模块内
我在获取(正确的?)时遇到了问题框架的父对象。如果我显式地将父级调暗为“MSForms.UserForm”,或者仅仅是“UserForm”的话,我就无法获得表单的标题属性。但是,当我在调暗语句中意外拼错了对象变量时,这将使变量的非调暗版本成为一个变量,它就可以工作了!(这是一个明确的选项!)
我不知道为什么这样做有效/无效。为了重现这一点,请输入一个表单和一个框架。使用框架的默认命名“Frame1”。然后将此子项放入表单模块:<br>子测试(objFrame As Frame)<br>MsgBox objFrame.Parent。标题“此操作有效,而无需将对象
作为MSForms设置为Dim tmpMSForm。UserForm
设置tmpForm=objFrame。如果您将“tmpForm”更改为声明的“tmpMSForm”,则它不起作用
MsgBox tmpForm。标题<br>结束Sub<br>从用户窗体调用Sub。初始化事件,将帧作为参数传递:
Private-Sub-UserForm_initialize()。但是,在“test”子例程中,如果将未声明的“tmpForm”变量(Variant)
更改为“tmpMSForm”(声明为MsForms.Userform,甚至声明为“Userform”),则标题属性返回为空
**** Hidden Message *****

Bryco 发表于 2008-8-19 09:55:22

me.caption 是否有效?
另外,我认为如果你要使它变暗,你会把它作为一个用户表单1调暗,你不应该

Rogue 发表于 2008-8-19 12:28:30

我. caption有用吗?
嗯,那将是欺骗——因为所有这些都将在代码模块中结束。为了隔离这个问题,我把所有的东西都拆了。
> >此外,我认为如果您要将其作为userform1进行变暗,您应该这样做
我没有将其作为userform1进行变暗,因为直到运行时才会知道该表单的名称。基本上,这将作为一个代码模块结束,可以放入VBA项目中,将框架控制传递给模块中的sub,其余的代码将通过API调用自定义表单。
页: [1]
查看完整版本: 通用VBA问题