2016-10-17 67 views
-1

我想在Excel中使用兩個用戶表單。 第一個用戶窗體有兩個按鈕。 第一個按鈕'Go'可以將數字1賦予a,然後轉到第二個用戶窗體。如何在Excel中的用戶表單之間傳輸值

Public a as Integer 
Private Sub Go_Click() 
UserForm2.Show 
a = 1 
End Sub 

而另一個按鈕「顯示」可以顯示出a和b的值。

Private Sub Show_Click() 
Load UserForm2 
Debug.Print a, b 
End Sub 

在第二個用戶窗體中,它可以將2分配給b(並關閉用戶窗體2的窗口)。我想當我點擊第一個用戶窗體中的「顯示」時,它可以顯示出a和b(1和2)。我怎樣才能糾正我的代碼?

回答

1

有這樣的代碼在Userform1

Public a As Integer 
Public frm As UserForm2 

'Userform1 code. 
Private Sub Go_Click() 
    Set frm = New UserForm2 
    a = 1 
End Sub 

Private Sub Show_Click() 
    Debug.Print a, frm.b 
    Set frm = Nothing 
End Sub 

而這userform2

Public b As Integer 

'UserForm2 code 
Private Sub UserForm_Initialize() 
    b = 2 
End Sub 

的 'Go_Click' 在Userform1創建的Userform2一個新的類的實例將在Userform2Userform_Initialise事件並將值設置爲變量b。然後您可以在Userform1中的frm變量中引用它。

您可以輸入文本Userform2及隱藏表單:
Userform1代碼:

Public a As Integer 
Public frm As UserForm2 

'Userform1 code. 
Private Sub Go_Click() 
    Set frm = New UserForm2 
    a = 1 
    frm.Show 
End Sub 

Private Sub Show_Click() 
    Debug.Print a, frm.b, frm.TextBox1 
    Set frm = Nothing 
End Sub 

UserForm2代碼:

Public b As Integer 

Private Sub btnClose_Click() 
    Me.Hide 
End Sub 

'UserForm2 code 
Private Sub UserForm_Initialize() 
    b = 2 
End Sub 

enter image description here

+0

非常感謝你。我試過你的代碼,它運行良好。我對此仍有疑問。在第二個用戶窗體中,我想使用布頓而不是初始化。因爲在第二個用戶窗體中,用戶將在文本框中輸入一些內容,並且我想在第一個用戶窗體中使用它們。那可能嗎?或者你有更好的方法嗎? – Hiddenllyy

+0

我試圖添加一個新的botton來關閉userform2,但有一個錯誤402,說我應該在第一個計劃中關閉窗口。 – Hiddenllyy

+1

我已經添加了從Userform2獲取文本的代碼。關閉按鈕隱藏了用戶表單,'Userform1.commandbutton2'從內存中刪除'frm'。 –

相關問題