主页>技术社区>编程问答

将数据从文本文件导入Excel

eIT.com.cn 2023/3/11 8:27:15 阅读 3 次

打印


如何解决将数据从文本文件导入Excel?

制表符分隔的文本,称为Log.txt,可使用宏写入该。这是文本的:

"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个单元格的数据。这是我到目前为止的:

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,2) + 1)
Wend
Close #FileNum
End Sub

关于如何更改以使其从Log.txt的数据一行一行地从单元格B2开始写入Log表的任何技巧?我不希望它在每行的开头和结尾都包含引号。例如,第一行(“ test1 ...”)从B列(B2)开始进入第2行,第二行从B列(B3)开始进入第3行,第三行进入B列第4行,等

解决方法

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

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
,

如果您只想导入文件,则可以通过以下方式进行操作:

    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)   .TextFileTrailingMinusNumbers = True   .Refresh BackgroundQuery:=False
End With





相关内容


热门栏目


特别声明


最新资讯
热讯排行



合作媒体友情链接
生活常识小贴士 软件开发教程 智慧城市生活网 息县通生活服务[移动版] 息县商圈[移动版] 美食菜谱
健康养生 法律知识 科技频道 电影影讯 留学考研学习 星座生肖|解梦说梦




关于我们 | 联系我们 | 合作媒体 | 使用条款 | 隐私权声明 | 版权声明

      Copyright © 2023 eIT.com.cn. All Rights Reserved. 豫ICP备2022012332号