Dim strData, strs2, target_txt, timestr1, timestr2, fname As String
Dim Arr1, M, N, i, j, use_row, idx, idy As Long '存读取的数据
Dim Arr2() As String
Dim arr_name() As String '存文件名
Sub Get_txt_cont()
'选择文件名
file = Application.GetOpenFilename("文本文件,*.txt")
Set objStream = CreateObject("ADODB.Stream")
'读取文件内容指定字符集为UTF-8
objStream.Charset = "utf-8"
objStream.Open
objStream.LoadFromFile (file) ''加载文本文件
strData = objStream.readText() '使用ReadText返回文件内容
'用Split函数按行来分割字符串存至数组中,处理数据,然后通过循环填写至sheet表中
Arr1 = Split(strData, vbCrLf)
objStream.Close
Set objStream = Nothing
M = 1
N = 1
For i = 0 To UBound(Arr1)
strs2 = Arr1(i)
Arr2 = Split(strs2, ",") '用Split函数,来分割字符串存至数组中
For j = 0 To UBound(Arr2)
strX = Arr2(j)
If strX <> "" Then
Sheets("Sheet1").Cells(M, N).Value = strX
End If
N = N + 1
Next j
M = M + 1
N = 1
Next
'写入值
use_row = Sheets("sheetx").[A65535].End(xlUp).Row '使用到第几行了
timestr1 = Sheets("Sheet1").Cells(2, 3).Value '获取时间 2023-04-27 10:37:36
timestr2 = Sheets("Sheet1").Cells(3, 3).Value
idx = InStrRev(file, "\") 'InStrRev函数返回一个字符串(1)在另一个字符串(2)中左起最后一次出现的位置
idy = InStrRev(file, "t")
fname = Mid(file, idx + 1, idy - 4 - idx) '截取到txt文件名
arr_name = Split(fname, " ")