excel - 将数据从文本文件导入 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, UBound(Arr, 2) + 1)
Wend
Close #FileNum
End Sub
有关如何更改代码以使其将数据从 Log.txt 逐行写入日志表的任何提示,从单元格 B2 开始?我不希望它在每行的开头和结尾包含引号。例如,第一行 ("test1...") 将从 B 列 (B2) 开始进入第 2 行,第二行将从 B 列 (B3) 开始进入第 3 行,第三行将进入第 4 行 B 列,等等
解决方案
您想要的是将数组写入工作表范围,如下所示:
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
推荐阅读
- asp.net - Asp.Net Thread.Sleep 被重定向忽略
- javascript - 先加载精灵图像
- android - 限制图库中的视频时长 - Android Studio
- php - ACF 关系 上一页 下一页 CPT 链接
- java - 使用 jdbc 驱动程序的 AEM 到雪花连接
- sql - 如何获取每个 id 的特定行?
- python - Server http displays a variable from .txt with python
- blockchain - How to generate wrapper code for existing contract with web3j?
- sbt - sbt UnknownHostException repo.scala-sbt.org
- azure - Azure DevOPs YAML based multi-stage pipeline APPROVAL using REST API (APPPROVALID for Release stage)