gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 20:47:10 24 4
gpt4 key购买 nike

我目前正在导入包含大量数据的 URL。因此,我每次都必须手动通过文本导入向导来格式化特定的行。为了加快这个过程,我记录了我导入 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

关于vba - 如何修改文本导入向导 VBA 代码以更改特定列的列数据格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11231550/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com