2016-07-22 45 views
2

私はここで分割機能を使用しようとしています。クリップボードからコンテンツを取得して配列に格納しようとしていて、配列から取得したものを件名に取り込みます。しかし、私は常に型の不一致のエラーを取得します。私はいくつかの助けに感謝します。 Dim varArray() as StringクリップボードからVBの配列にコピー

にここに私のコードだ

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 Variantも、varArray = Split(myString, Chr(10))で結構です。

+0

私はそれをテストし、あなたは半分の権利を得ました。しかし、私の+1を得るのに十分です。文字列の配列をバリアント配列(Variable:varArray()= Split(myString、Chr(10)) 'のように' Dim varArray())に代入しようとすると 'Type Mismatch Error'がスローされます。 (VariArray()= Array()など)に値を代入しようとすると、( '' VariArray As Variant')型に値を代入しようとすると '' Script out of range 'エラーです。もちろん、エラーのない正規のバリアントに配列文字列を割り当てることができます。 –

関連する問題