如何在VBA中读取带分隔符的文本文件并将数据导出到excel工作表的各个列中

如何在VBA中读取带分隔符的文本文件并将数据导出到excel工作表的各个列中,vba,excel,delimiter,Vba,Excel,Delimiter,我要导入的文件由制表符和逗号组成,它们都需要从新的excel工作表中排除。我无法准确地理解这一点,这是我迄今为止一直在使用的代码……任何帮助都将不胜感激 Sub DelimitedTextFileToArray() Dim Delimiter As String Dim TextFile As Integer Dim FilePath As String Dim FileContent As String Dim LineArray() As String Dim DataArray() As

我要导入的文件由制表符和逗号组成,它们都需要从新的excel工作表中排除。我无法准确地理解这一点,这是我迄今为止一直在使用的代码……任何帮助都将不胜感激

Sub DelimitedTextFileToArray()
Dim Delimiter As String
Dim TextFile As Integer
Dim FilePath As String
Dim FileContent As String
Dim LineArray() As String
Dim DataArray() As String
Dim TempArray() As String
Dim rw As Long, col As Long

Delimiter = ","'I just used the comma as a test for the delimiter
FilePath = "C:\FILENAME.txt"
rw = 0

TextFile = FreeFile
Open FilePath For Input As TextFile

FileContent = Input(LOF(TextFile), TextFile)


Close TextFile


LineArray() = Split(FileContent, vbCrLf)

For x = LBound(LineArray) To UBound(LineArray)
  If Len(Trim(LineArray(x))) <> 0 Then
      TempArray = Split(LineArray(x), Delimiter)

    'Determine how many columns are needed
      col = UBound(TempArray)

    'Re-Adjust Array boundaries//Ive had problems debugging @ this step and beyond
      ReDim Preserve DataArray(col, rw)

    'Load line of data into Array variable
      For y = LBound(TempArray) To UBound(TempArray)
        DataArray(y, rw) = TempArray(y)
      Next y
  End If

    rw = rw + 1

Next x

End Sub
Sub-DelimitedTextFileToArray()
作为字符串的分隔符
将文本文件设置为整数
将文件路径设置为字符串
将文件内容设置为字符串
Dim LineArray()作为字符串
Dim DataArray()作为字符串
Dim TempArray()作为字符串
变暗rw为长,col为长
Delimiter=“,”'我刚刚使用逗号作为分隔符的测试
FilePath=“C:\FILENAME.txt”
rw=0
TextFile=FreeFile
以文本文件的形式打开输入的文件路径
FileContent=输入(LOF(TextFile),TextFile)
关闭文本文件
LineArray()=拆分(文件内容,vbCrLf)
对于x=LBound(LineArray)到UBound(LineArray)
如果Len(Trim(LineArray(x)))为0,则
TempArray=Split(LineArray(x),分隔符)
'确定需要多少列
col=UBound(临时数组)
“重新调整数组边界//我在调试@这一步及以后的步骤时遇到问题
ReDim保留数据数组(列、列)
'将数据行加载到数组变量中
对于y=LBound(TempArray)到UBound(TempArray)
数据阵列(y,rw)=临时阵列(y)
下一个y
如果结束
rw=rw+1
下一个x
端接头
更换该行

TempArray = Split(LineArray(x), Delimiter)


这将使每个制表符在拆分之前都成为逗号

分号?你是说用tab来代替,比如
vbTab
?哦。很抱歉将修复。如果没有数据和所需输出的示例,就无法判断,但您可能只需要使用Power Query。
TempArray = Split(Replace(LineArray(x), vbTab, Delimiter), Delimiter)