Vba Userform中的全局变量

Vba Userform中的全局变量,vba,global-variables,userform,Vba,Global Variables,Userform,我在论坛上搜索了一下,找到了一些答案,但对我来说并不适用 我有两个用户表单 在第一个例子中,我给一个叫做Word的变量赋值 在第二个例子中,我有一个标签,我需要标题成为变量词 例如: Public Word as String Private Sub Userform1_Activate Word = "Today Is Saturday" End Sub Private Sub Userform2_Activate Label1.Caption = Word End Sub

我在论坛上搜索了一下,找到了一些答案,但对我来说并不适用

我有两个用户表单

在第一个例子中,我给一个叫做Word的变量赋值

在第二个例子中,我有一个标签,我需要标题成为变量词

例如:

Public Word as String

Private Sub Userform1_Activate
   Word = "Today Is Saturday"
End Sub

Private Sub Userform2_Activate
   Label1.Caption = Word
End Sub
但这是行不通的。标签标题的值为零。 有人能帮我吗

谢谢

First Form

Private Sub CommandButton5_Click()

Db = "C:\Users\Desktop\db.txt"

Set File1 = CreateObject("Scripting.FileSystemObject")
Set File2 = File1.OpenTextFile(Db, 1)

Do Until File2.AtEndOfStream

If (File2.Readline = TextBox1) Then Exit Do
If File2.AtEndOfStream Then WordNotFound.Show
If File2.AtEndOfStream Then TextBox1.Value = ""
If File2.AtEndOfStream Then Exit Sub

Loop

Word = File2.Readline

MsgBox Word

TextBox1.Value = ""

End Sub
第二种形式

Private Sub UserForm_Click()

Label1.Caption = Word

End Sub

正如我在评论中所说,你的方法应该有效。这是我试过的测试代码

1-在
模块1中

Public Word As String
2-创建2个用户表单-
UserForm1
UserForm2

2a-在用户表单1中

Private Sub UserForm_Activate()
    Word = "This is Saturday"
End Sub
2b-在用户表单中2

Private Sub UserForm_Activate()
    Label1.Caption = Word
End Sub
3-然后在
本工作簿中

Private Sub Workbook_Open()
    UserForm1.Show
    UserForm2.Show
End Sub
因此,当您关闭UserForm1时,UserForm2将显示如下


这应该行得通。你能展示一下显示用户表单的顺序吗?我已经把它们添加到了我的第一篇文章中,看看。看看我的示例代码。希望这有帮助。Pankaj Jaju,你的代码运行得很好。但我打算只使用Useforms。我不能只用这两种形式吗?因为我想稍后创建一个exe文件。如果它使用的是“ThiwWorkbook”和一个模块,我不确定它是否有可能。我只是向您展示了我的测试代码。您可以在任何地方执行
.Show
。例如,您可以使用
UserForm2。在
UserForm1
code的末尾显示
。在调用
UserForm2
之前,请确保设置了
Word
。哦,谢谢,我明白了!但是,作为字符串语句的公共单词呢?它需要放在一个单独的模块中吗?不一定。您可以在UserForm代码的开头使用它。