0
Excelの接続の引数で使用されている配列に問題があります。Excelテキストファイルの接続TextFileColumnDataTypes
問題が発生している行が表示されるように、以下のコードでコメントしました。これは私の完全なコードが使用されているのではなく、エラーは同じで、これは本質的にボイルダウンされているので、この例にハードコードしているので、アレイのサイズは、それが故にそれについて動的ことを望む1つの以上のテキストファイルをループだとして異なるコードのフルバージョンで
Sub TestWhyStuffBreaks()
Dim xlApp As Excel.Application, xlWb As Excel.Workbook, xlSht As Excel.Worksheet, i As Integer, arrDT() As Integer
Set xlApp = CreateObject("Excel.Application")
Set xlWb = xlApp.Workbooks.Add
ReDim arrDT(16)
For i = 1 To 16
arrDT(i) = 2
Next i
xlApp.Visible = True
Set xlSht = xlWb.Sheets(1)
With xlSht.QueryTables.Add(Connection:="TEXT;C:\temp\textfile.txt", Destination:=xlSht.Range("$A$1"))
.Name = xlSht.Name
.FieldNames = True
.RowNumbers = False
.TextFilePlatform = 437
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierNone
.TextFileConsecutiveDelimiter = False
.TextFileOtherDelimiter = "|"
.TextFileColumnDataTypes = arrDT 'This line errors with message of "Invalid procedure call or argument".
'.TextFileColumnDataTypes = Array(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2) 'This line is fine but not how I want to do it, I want to be able to dynamically change the length of the array.
.Refresh BackgroundQuery:=False
End With
End Sub
。
この場合のArray(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2)
とarrDT
の違いは何ですか?
私は間違っているかもしれませんが、私はそれを解決した方法を思い出すことができません(私は以前の同じ問題を抱えていました)あなたはバリアントとして配列を宣言しようとすると、私はかなり[キャストする]と関係があると確信しています(https://msdn.microsoft.com/en-us/library/tbatye4h.aspx) – Sgdva
私はVariant、Long、Doubleとして試しました。それでも私には同じエラーメッセージが表示されます。それは非常に刺激的です!その変換リンクは、後でバインドする場合にのみ機能しますか? –
ああ!私はそれを持っている、すぐに答えを投稿します! –