0

毎日7つのテキストファイルをExcelにインポートする必要があります。マクロを使用してタスクを自動化したいのですが、1つの列の幅が異なる場合があります。現在、「自動」ブレークを削除して、自分のブレークを挿入する必要があります(常に同じ位置にあります)。列区切りを自動的に挿入しないようにExcelインポートウィザードを変更する方法はありますか?

4

1 に答える 1

2

これを行うには、解析情報を含む配列を TextToColumns メソッドの FieldInfo パラメータに渡します。

FieldInfo パラメーターは、ソース列を分割する個々のデータ列の解析情報を含む配列を値として取り、次のような形式を取ります。

FieldInfo:=Array(Array(0, 1), Array(2, 1), Array(5, 1), Array(7, 1), Array(11, 1))

Microsoft の FieldInfoパラメータのドキュメントから:

データの個々の列の解析情報を含む配列。解釈は、DataType の値によって異なります。データが区切られている場合、この引数は 2 要素配列の配列であり、各 2 要素配列は特定の列の変換オプションを指定します。最初の要素は列番号 (1 から始まる) で、2 番目の要素は列の解析方法を指定するxlColumnDataType定数の 1 つです。

したがって、インポートされたファイルの列 'A' のデータを位置 2、5、7、および 11 の個々の列に分割し、列のデータ型を 'General' にするには、マクロで次のようにします。

Columns("A:A").Select

Selection.TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, _
    FieldInfo:=Array(Array(0, 1), Array(2, 1), Array(5, 1), _
    Array(7, 1), Array(11, 1)), _
    TrailingMinusNumbers:=True
于 2013-02-05T20:23:17.623 に答える