复制变量';s内容到剪贴板VBA(Excel 2013)

复制变量';s内容到剪贴板VBA(Excel 2013),excel,vba,Excel,Vba,我知道这应该是一个超级简单的解决方案,但我无法理解 我只是制作一个简单的按钮,将“输出”范围内的值复制到我的剪贴板 Private Sub CommandButton1_Click() Dim Output As String Output = Range("Output") MsgBox (Output + " Text has been copied") End Sub Private Sub CommandButton1_Click() Dim Output As

我知道这应该是一个超级简单的解决方案,但我无法理解

我只是制作一个简单的按钮,将“输出”范围内的值复制到我的剪贴板

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

    Output.Copy
    MsgBox (Output + " Text has been copied")
End Sub
我希望输出复制到我的剪贴板

编辑:

非常感谢
Sam

您最好将输出声明为对象变量(或者更具体地说,声明为范围)

然后,您可以使用messagebox中的范围值,同时也可以将该值复制到剪贴板

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

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

我假设您需要称为“输出”的
范围的

下面的脚本将添加join(如工作表函数“concanate”),然后将其显示在
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

我对它做了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

谢谢,我做了一个U形转弯,结果好多了:
Private Sub CommandButton1\U Click()将myData设置为DataObject Dim Output作为String Output=UCase(InputBox(“此处键入文本”))如果Output=“”,那么End Else End如果Set myData=New DataObject myData.SetText Output myData.PutInClipboard MsgBox(输出+“文本已被复制”)End Sub
您好,您可以删除编辑并回答自己的问题,然后将其标记为正确答案。