我目前正在寻找使用excel vba将1D数组复制到剪贴板的方法。到目前为止,我已经失败了只将一个字符串复制到剪贴板。我做的是:
首先:我包含了#34; Microsoft Forms 2.0对象库"到我的项目
第二:我尝试使用以下代码将strText字符串复制到剪贴板。
Sub copyToClipboard()
Dim objData As New MSForms.DataObject
strText= "1"
objData.SetText strText
objData.PutInClipboard
objData.GetFromClipboard
resultString = objData.GetText
End Sub
如果我将剪贴板粘贴到文本编辑器中,我会得到一些有趣的符号。如果我检查resultString的内容,我会得到" ??"。
编辑:如下所述,我只得到" ??"如果我调试代码。正常运行给出预期输出。这是输出窗口 的图像第二个输出行是在对代码进行调试时,第一个是正常运行。
答案 0 :(得分:2)
我无法找到" Microsoft Forms 2.0对象库"但是也可以在工作簿中创建UserForm(然后可以忽略UserForm)。然后使用此代码:
Dim objData As New MSForms.DataObject
'Load Test to Clipboard
objData.SetText "TEST"
objData.PutInClipboard
'Get Text from Clipboard
objData.GetFromClipboard
Debug.Print objData.GetText
然后,要将数组加载到剪贴板,请使用以下内容:
Dim objData As New MSForms.DataObject
'Join combines all Array items to one string with the specified delimiter
objData.SetText Join(ARRAY, ",") 'ARRAY is your Array-Variable, "," is your delimiter
objData.PutInClipboard
答案 1 :(得分:0)