首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将文本文件中的数据导入Excel

将文本文件中的数据导入Excel
EN

Stack Overflow用户
提问于 2020-08-14 23:57:12
回答 2查看 43关注 0票数 0

我有一个名为Log.txt的以制表符分隔的文本文件,我使用宏将其写入。以下是文本文件的内容:

代码语言:javascript
运行
复制
"test1  test1   test1   test1   test1   test1   test1   test1   test1   test1   test1   test1   test1   test1   test1   test1   test1   test1"
"test2  test2   test2   test2   test2   test2   test2   test2   test2   test2   test2   test2   test2   test2   test2   test2   test2   test2"
"test3  test3   test3   test3   test3   test3   test3   test3   test3   test3   test3   test3   test3   test3   test3   test3   test3   test3"
"test4  test4   test4   test4   test4   test4   test4   test4   test4   test4   test4   test4   test4   test4   test4   test4   test4   test4"

我想将文本文件的每一行(当前为4行,但将随着时间的推移扩展)写入电子表格中名为"Log“的工作表中,从单元格B2开始。每行有18个单元格的数据。以下是我到目前为止拥有的代码:

代码语言:javascript
运行
复制
Sub Refresh_Log()
Dim Str As String, FileNum As Integer, FileName As String, Arr() As String
FileNum = FreeFile()
FileName = "P:/Log.txt"
ReDim Arr(17, 0)
Open FileName For Input As #FileNum
While Not EOF(FileNum)
    Line Input #FileNum, Str
    For i = 0 To 17
        Arr(i, UBound(Arr, 2)) = Split(Str, Chr(9))(i)
    Next i
    ReDim Preserve Arr(17, UBound(Arr, 2) + 1)
Wend
Close #FileNum
End Sub

关于如何修改代码,使其从单元格B2开始,逐行地将数据从Log.txt写入日志表,有什么建议吗?我不希望它在每一行的开头和结尾都包含引号。例如,第一行("test1...")第二行从B列(B2)开始进入第二行,第二行从B列开始进入第三行(B3),第三行进入第四行B列,依此类推。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-15 00:31:15

您需要的是将数组写入工作表范围,如下所示:

代码语言:javascript
运行
复制
With Sheets("Log")
    .Range("B2").Resize(UBound(Arr, 1) - LBound(Arr, 1) + 1, UBound(Arr, 2) - LBound(Arr, 2) + 1).Value2 = Application.WorksheetFunction.Transpose(Arr)
End With
票数 0
EN

Stack Overflow用户

发布于 2020-08-15 00:38:00

如果你只是想导入文件,你可以这样做:

代码语言:javascript
运行
复制
    With ActiveSheet.QueryTables.Add(Connection:= _
    "TEXT;" & Filename, Destination:=Range("$B$2"))
    .CommandType = 0
    .Name = "log"
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .TextFilePromptOnRefresh = False
    .TextFilePlatform = 1257
    .TextFileStartRow = 1
    .TextFileParseType = xlDelimited
    .TextFileTextQualifier = xlTextQualifierDoubleQuote
    .TextFileConsecutiveDelimiter = True
    .TextFileTabDelimiter = True
    .TextFileSemicolonDelimiter = False
    .TextFileCommaDelimiter = False
    .TextFileSpaceDelimiter = False
    .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
    .TextFileTrailingMinusNumbers = True
    .Refresh BackgroundQuery:=False
End With
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63416179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档