VBA代码将文本框从用户窗体中的一个帧移动到另一个帧?

时间:2014-01-13 09:17:44

标签: excel-vba vba excel

我在Frame1中有一个文本框TB1。在某些条件下,TB1应该在Frame1中可见,并且在某些条件下TB1应该在另一帧Frame2中可见。 可能吗?如果是,那怎么样?样本编码将不胜感激:)

1 个答案:

答案 0 :(得分:0)

在设计时添加到Frames的控件无法以编程方式删除。只有在运行时创建的那些可以在运行时添加或删除。

但是如果你想动态地创建一个文本框,并在帧之间移动它,这是如何做到的:

1-在Excel VB6界面中创建一个新表单,并在其上添加两个框架:

Step 1

2-添加两个按钮,如上所示

3-按钮1和2的代码非常相似,这里是:

Private Sub CommandButton1_Click()

    On Error Resume Next
        Frame2.Controls.Remove ("TB2") 'Remove if TextBox already exist elsewhere
    On Error GoTo 0

    Set txt = Frame1.Controls.Add("Forms.TextBox.1", "TB2", True)

    txt.Left = 20
    txt.Top = 20



End Sub

Private Sub CommandButton2_Click()


    On Error Resume Next
        Frame1.Controls.Remove ("TB2") 
    On Error GoTo 0


    Set txt = Frame2.Controls.Add("Forms.TextBox.1", "TB2", True)

    txt.Left = 20
    txt.Top = 20

End Sub

现在,当您运行表单时,单击button1并在Frame1中创建文本框 单击按钮2,文本框将从第1帧中删除并在第2帧中创建

enter image description here