在VB中从剪贴板复制到数组

Posted

技术标签:

【中文标题】在VB中从剪贴板复制到数组【英文标题】:Copy from clipboard to array in VB 【发布时间】:2016-07-22 19:01:58 【问题描述】:

我在这里尝试使用拆分功能。我试图从剪贴板中获取内容,然后将其存储到一个数组中,然后用我从数组中得到的任何内容填充主题行。但我总是收到类型不匹配错误。我会很感激一些帮助。这是我的代码

Dim DataObj As MsForms.DataObject
Set DataObj = New MsForms.DataObject
Dim varArray() As Variant
Dim myString As String


'Get data from the clipboard.
DataObj.GetFromClipboard

'Get clipboard contents
myString = DataObj.GetText
varArray() = Split(myString, Chr(10))

With OutMail
    .BodyFormat = 3
    .To = ""
    .CC = ""
    .BCC = ""
    .subject = varArray(0) & " - " & varArray(2) & " - " & varArray(4)
    Set olInsp = .GetInspector
    Set wdDoc = olInsp.WordEditor
    Set oRng = wdDoc.Range
    oRng.collapse 1
    oRng.Paste
    .Display

End With
On Error GoTo 0

【问题讨论】:

【参考方案1】:

改变

Dim varArray() As VariantDim varArray () as String

另外,varArray = Split(myString, Chr(10)) 也可以。

【讨论】:

我测试了它,你说对了一半。但足以让我的+1。如果你尝试将一个字符串数组分配给一个变体数组(例如Dim varArray() As Variant : varArray() = Split(myString, Chr(10))),它会抛出一个Type Mismatch Error。如果您为其分配一个变体数组(例如 varArray() = Array()",则不会出现错误。如果您尝试使用 () 为变体 Dim varArray As Variant 分配一个值,则会引发 Script out of range 错误。当然,您可以将数组字符串分配给没有错误的常规变体。

以上是关于在VB中从剪贴板复制到数组的主要内容,如果未能解决你的问题,请参考以下文章

VB如何利用剪贴板复制、粘贴文件,用到啥API

用VB实现复制粘贴

vb如何点击一个label直接复制label里面的信息?

VB中 如何复制Text1.text的字体到剪贴板? 如何剪切?

在c ++ fpermissive中从动态数组复制到另一个动态数组

vba代码求助,将修改区域复制到数组中?