有时候,我们需要从用户窗体的文本框中复制数据,然后将其粘贴到其他地方。下面举例说明具体的操作方法。
示例一:如下图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