VBA实战技巧16:从用户窗体的文本框中复制数据

2021-01-20 11:41:07 浏览数 (3)

有时候,我们需要从用户窗体的文本框中复制数据,然后将其粘贴到其他地方。下面举例说明具体的操作方法。

示例一:如下图1所示,在示例窗体中有一个文本框和一个命令按钮。当用户窗体被激活时,文本框中自动显示文字“完美Excel”,单击“复制”按钮后,文本框中的数据会被复制到剪贴板。

图1:带有文本框和命令按钮的用户窗体

首先,按图1设计好用户窗体界面。然后,在该用户窗体模块中,输入下列代码:

代码语言:javascript复制
Dim myClipboard As New DataObject Private Sub UserForm_Activate()    Me.TextBox1.Value ="完美Excel"End Sub Private Sub CommandButton1_Click()  With myClipboard    .SetText Me.TextBox1.Text    .PutInClipboard  End WithEnd Sub

在图1所示的用户窗体中添加一个文本框,上述代码后面添加一句代码:

Me.TextBox2.Paste

运行后的结果如下图2所示。

图2

示例二:如下图3所示,在用户窗体中有多个文本框,要求单击按钮后将有数据的文本框中的数据全部复制到剪贴板。

图3:带有6个文本框和1个命令按钮的用户窗体

首先,按图3设计好用户窗体界面。然后,在用户窗体模块中,输入下列代码:

代码语言:javascript复制
Dim strUnion As String Private Sub CommandButton1_Click()    Dim dObj As DataObject    With Me        If Not .TextBox1 =Empty Then strUnion = strUnion & .TextBox1        If Not .TextBox2 =Empty Then strUnion = strUnion & vbCrLf & .TextBox2        If Not .TextBox3 =Empty Then strUnion = strUnion & vbCrLf & .TextBox3        If Not .TextBox4 =Empty Then strUnion = strUnion & vbCrLf & .TextBox4        If Not .TextBox5 =Empty Then strUnion = strUnion & vbCrLf & .TextBox5        If Not .TextBox6 =Empty Then strUnion = strUnion & vbCrLf & .TextBox6    End With        Set dObj = New DataObject        dObj.SetText strUnion, 1    dObj.PutInClipboardEnd Sub

1 人点赞