编程中会遇到一些过程变量的使用,有些变量不只在一个过程中使用,需要在不同的过程中进行交换使用,怎么办呢?
其实,过程变量熟练应用是一个编程思想的逻辑问题,是一编程中解决实际问题的一个高度应用。
本文,将介绍一种不同窗体之间的变量数据交换应用实例,一定要看到最后,收获不小。
上图为第一个窗体,也就是原始窗体,输入一些内容后想要显示到另一个窗体中引用这些内容。
其实有多种办法,如公共变量的引用,就是在模块中设置一个公共变量,将文本框值存入这个公共变量,然后再引用。
还有一种是直接引用窗体对象变量值,这不在本节介绍之列。
本文重点看一下使用DataObject对象传递值的过程,下图为传递到另一个窗体的显示结果。
首先,要创建一个DataObject对象:
Public xOBj As New MSForms.DataObject
上述语句写到一个模块中,这样就在系统中新建了一个名为xOBj的DataObject对象。
然后在第一个窗体中输入如下代码:
xOBj.SetText Me.TextBox1.Value, 1
这行代码的意思就是把文本框中的值,复制到xOBj对象中。
对应就有一个方法xString=GetText(format),返回相应格式的值到一个字符变量中(xString)
如下图所示:
这样就有了一来一去的结果。
通过DataObject这个中间对象,可以达到数据的传递过程。
代码:
第一个窗体,按钮代码
Private Sub CommandButton1_Click()
If Me.TextBox1.Value = "" Then Exit Sub
With xOBj
.SetText Me.TextBox1.Value, 1
End With
Unload Me
UserForm2.Show
End Sub
第一个窗体事件代码:
Private Sub UserForm_Initialize()
Dim xStr As String, xp As String
xp = VBA.vbCrLf
xStr = xStr & "《咏柳》" & xp _
& "贺知章" & xp _
& "碧玉妆成一树高," & xp _
& "万条垂下绿丝绦。" & xp _
& "不知细叶谁裁出," & xp _
& "二月春风似剪刀。"
Me.TextBox1.Value = xStr
End Sub
第二个窗体事件代码:
Private Sub UserForm_Activate()
Me.Label1.Caption = xOBj.GetText(1)
End Sub
模块代码:
Public xOBj As New MSForms.DataObject
模块代码不能忘记,窗体中的各个控件手动添加进去就可以。
通过上述代码的组合,执行后会看到第一个窗体的内容显示到到第二个窗体中了,也就实现了数据的传递过程。
同样的效果,应用到不同场景当中就实现了强大的数据交换功能。
欢迎关注、收藏
---END---