現在、大量のデータを含むURLをインポートしています。このため、特定の行をフォーマットするには、毎回手動でテキストインポートウィザードを実行する必要があります。このプロセスを高速化するために、URLをインポートするために実行する手順のマクロを記録しました。残念ながら、列ヘッダーはさまざまなURLで同じままですが、データベース内での位置は一貫していません。インポートするときの私の目標は、ヘッダーが「IdNumber」の列を除いて、すべてのフォーマットを「general」のままにすることです。これは、「text」としてインポートする必要があります。以下のコード(たとえば)では、それはArray(22,2)でした。23列または24列の場合に別のURLをインポートしようとすると、問題が発生します。IdNumberを「テキスト」に変換する代わりに、別の配列に変換します。
質問:テキストインポートウィザードを使用するときに特定のヘッダー列のみを変更するようにVBコードで特定の列を指定する方法はありますか?
*注:正しく理解していれば、Array(X、X)関数の最初の数値は特定の列であり、2番目の数値は形式です(一般の場合は1、テキストの場合は2、...)
テキストインポートウィザードのコード:
'open the URL (urlName is a variable set as a String and is declared earlier in the code) and go through the Text Import Wizard
Workbooks.OpenText Filename:= _
urlName _
, Origin:=437, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False _
, Comma:=True, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), _
Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 1), Array(15 _
, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array(20, 1), Array(21, 1), _
Array(22, 2), Array(23, 1), Array(24, 1), Array(25, 1), Array(26, 1), Array(27, 1), Array( _
28, 1), Array(29, 1), Array(30, 1), Array(31, 1), Array(32, 1)), TrailingMinusNumbers _
:=True