2016-01-06 120 views
2

我知道这应该是一个超级简单的解决方案,但我无法理解它。将变量的内容复制到剪贴板VBA(Excel 2013)

我只是做了一个简单的按钮,将'输出'范围内的值复制到我的剪贴板。

Private Sub CommandButton1_Click() 
Dim Output As String 
    Output = Range("Output") 
    MsgBox (Output + " Text has been copied") 
End Sub 

我想输出复制到我的剪贴板。

编辑:

非常感谢 山姆

+0

您好,您可以删除的编辑工作,并回答自己的问题,然后将其标记为正确的回答。 –

回答

2

我做了一个180它和周围改变了它,下面

解决方案:

Private Sub CommandButton1_Click() 
Dim myData As DataObject 
Dim Output As String 

Output = UCase(InputBox("Type Text Here")) 

If Output = "" Then 
End 
Else 
End If 
Set myData = New DataObject 
myData.SetText Output 
myData.PutInClipboard 
MsgBox (Output + " text has been copied") 
End Sub 
0

你会更好声明输出对象变量(或者更具体地说,作为一个范围)。

然后,您可以使用消息框内的范围值,同时还可以将值复制到剪贴板。

Private Sub CommandButton1_Click() 
    Dim Output As Range 
    Set Output = Range("Output") 

    Output.Copy 
    MsgBox (Output + " Text has been copied") 
End Sub 
+0

谢谢,我做了一个U转向,并制定出更好: '私人小组CommandButton1_Click() 昏暗的myData作为数据对象 昏暗的输出作为字符串 输出=用Ucase(的InputBox(“类型的文本这里”)) 如果输出= “” 那 结束 否则 结束如果 集MYDATA的=新的DataObject myData.SetText输出 myData.PutInClipboard MSGBOX(输出+ “文本已复制”) 结束小组 ' – SamCramphorn

0

我假设你想RangeValues被称为“输出”

下面的脚本将添加加入(如WorkSheetFunction“Concantenate”),然后在MsgBox显示它并把它复制到剪贴板。

Private Sub CommandButton1_Click() 

    Dim Output As Range 
    Dim MyString As String 
    Dim OutputText As DataObject 

    Set OutputText = New DataObject 
    Set Output = Range("A1:A5") 

    MyString = "" 

    For Each cell In Output 

     MyString = MyString & cell.Value & " " 

    Next cell 

    OutputText.SetText MyString 
    OutputText.PutInClipboard 

    MsgBox (MyString + " Text has been copied") 

End Sub 
相关问题