VBA 用户窗体,带有交互式、可编辑弹出窗口,用于查看和编辑文本框

问题描述 投票:0回答:1

我有一个带有文本框1的用户表单1,并且表单上的空间有限。我正在尝试创建一个交互式/可编辑的“弹出窗口”,为用户提供更大的空间来在 textbox1 中输入/编辑文本。 我用 textbox2 创建了一个迷你 userform2。我向 userform1 添加了一个小 commandbutton1 以打开 userform2,效果很好。我希望 textbox1 和 textbox2 相互镜像。当在其中一个中添加/删除/编辑文本时,另一个中也会发生同样的情况。 我认为这很容易,但我什至无法从 textbox1 中获取文本以显示在 textbox2 中。这是我尝试过的

Private Sub commandbutton1_Click() 'userform1 module
    Dim n As userform2
    Set n = New userform2
    n.Show 'works
    userform2.textbox2.Text = userform1.textbox1.Text 'not working
End Sub
Private Sub Userform_Initialize() 'userform2 module
    userform2.textbox2.Text = userform1.textbox1.Text 'not working
End Sub
Private Sub textbox2_Change() 'tried in userform1 and userform2 modules
    userform1.textbox1.Text = userform2.textbox2.Text 'not working
End Sub
Private Sub textbox1_Change() 'tried in userform1 and userform2 modules
    userform2.textbox2.Text = userform1.textbox1.Text 'not working
End Sub

Pop Up

excel vba textbox popup userform
1个回答
0
投票

以下代码适用于两个用户窗体,每个用户窗体都包含一个文本框。用户可以在任一用户表单/文本框中键入文本,该文本将反映在另一个用户表单/文本框中。您可以采用此示例并根据您的需要进行调整。

本工作簿模块:

Option Explicit

Private Sub Workbook_Open()
  Call UserForm1.Show
End Sub

用户表单1代码:

Option Explicit

Private Sub CommandButton1_Click()
  UserForm2.Show
End Sub

Private Sub TextBox1_Change()
  UserForm2!TextBox1.Value = UserForm1!TextBox1.Value
End Sub

用户表单2代码:

Option Explicit

Private Sub TextBox1_Change()
  UserForm1!TextBox1.Value = UserForm2!TextBox1.Value
End Sub

Userform1 和 Userform2 需要设置以下属性:
显示模式:假

两个用户表单中的 Textbox1 都需要设置以下属性:
EnterKey 行为:True
多行:正确

© www.soinside.com 2019 - 2024. All rights reserved.