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