我目前正在寻找一种使用 excel vba 将一维数组复制到剪贴板的方法。到目前为止,我仅将一个字符串复制到剪贴板就已经失败了。我所做的是:
第一:我将“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
Run Code Online (Sandbox Code Playgroud)
如果我将剪贴板粘贴到文本编辑器中,我会得到一些有趣的符号。如果我检查 resultString 的内容,我会得到“??”。
编辑:如下所述,我只得到“??” 如果我调试代码。正常运行会给出预期的输出。这是输出窗口的图像
第二行输出是调试代码时的输出,第一行是正常运行的输出。
我无法找到“Microsoft Forms 2.0 对象库”,但也可以在工作簿中创建一个用户窗体(然后可以忽略用户窗体)。然后使用这段代码:
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
Run Code Online (Sandbox Code Playgroud)
然后,要将数组加载到剪贴板,请使用如下内容:
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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6378 次 |
最近记录: |