如何修改文本导入向导的VBA代码来更改特定列的列数据格式?

我目前正在导入包含大量数据的url。 因此,我必须每次手动通过文本导入向导才能格式化特定的行。 为了加速这个过程,我logging了我导入URL的步骤。 不幸的是,虽然列标题对于不同的URL保持不变,但它们在数据库中的位置不一致。 导入时,我的目标是将所有格式保留为“常规”,除了标题为“IdNumber”的列以外,我需要将其导入为“文本”。 在下面的代码中(例如),它是Array(22,2)。 当我尝试在23或24列中导入不同的URL时,就会出现问题。 而不是将IdNumber转换为“文本”它将变成一个不同的数组。

问题:在使用文本导入向导时,是否可以使用VB代码来指定某些列来仅修改特定的标题列?

*注意:如果我理解正确,Array(X,X)函数的第一个数字是特定的列,第二个数字是格式(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 

 Sub tester() Dim arr, a arr = GetFieldInfoArray(32, 22) 'position from first load=22... For Each a In arr Debug.Print Join(a, ",") Next a 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:=arr, TrailingMinusNumbers:=True End Sub 'EDIT: adjust array lower bound from 1 to 0... Function GetFieldInfoArray(NumFields As Integer, IdPosition As Integer) Dim arr(), x ReDim arr(0 To NumFields-1) For x = 1 To NumFields arr(x-1) = Array(x, IIf(x = IdPosition, 2, 1)) Next x GetFieldInfoArray = arr End Function