【问题标题】:Copy from clipboard to array in VB在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

【问题讨论】:

    标签: excel ms-access outlook vba


    【解决方案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 错误。当然,您可以将数组字符串分配给没有错误的常规变体。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多