gpt4 book ai didi

excel - 在 excel 中提取 .tbl 文件的特定行

转载 作者:行者123 更新时间:2023-12-04 21:26:46 25 4
gpt4 key购买 nike

我有一个包含以下链接的 excel 文件:
.xlsx file
这些链接连接到具有以下数据的文件:
.tbl file
我希望将记事本文件的黄色部分读入 .xlsx 文件的黄色部分(记事本是 .tbl 文件的打开版本)。每个版本号的虚线部分都不同。 (此代码用于检查是否使用了正确的贴现曲线)。但是,discount_curve.tbl 格式是下一个程序能够处理的唯一格式。因此,它在不同的文件夹中具有相同的名称。
有没有办法 excel/vba 可以每三行读取一次,而读取的文件取决于文件夹链接?我非常喜欢让整个过程自动化,因为有很多版本号。此外,我不想更改文件格式,因为我希望该过程尽可能干净。
有人可以帮我吗?
亲切的问候。

最佳答案

请尝试下一个功能,如果需要提取的数据存在在单个文件中,每三行 ..它将返回一个二维数组,可以在您需要的范围内一次删除:

Function extractThirdLine(filePath As String) As Variant
Dim arrTxt, i As Long, arrFin, k As Long
'read the file content in an array:
arrTxt = Split(CreateObject("Scripting.FileSystemObject").OpenTextFile(filePath, 1).ReadAll, vbCrLf)
ReDim arrFin(1 To Int(UBound(arrTxt) / 3) + 1, 1 To 1)
For i = 2 To UBound(arrTxt) Step 3 'start from 2, because arrTxt is 1D array
k = k + 1
arrFin(k, 1) = arrTxt(i) 'build the filal array containing the necessary rows
Next i
extractThirdLine = arrFin
End Function
您的图片未显示行和列标题。因此,假设您向我们展示的范围存在于“A:C”列中,并且您需要将提取的数据放入“D:D”列中,请使用以下方式:
Sub testExtractThirdLine()
Dim filePath As String, arrVal, el
filePath = "your text file full name" 'please write here the correct file name
arrVal = extractThirdLine(filePath)
Range("D1").Resize(UBound(arrVal), 1).value = arrVal
End Sub
如果您显示的范围不是我想要的范围,您可以轻松适应 Range("D1")到列范围之后,其行将成为讨论范围的第一行。
如果有什么不够清楚,请不要犹豫,要求澄清。
已编辑 :
但是,如果可以在文件中找到每第三行,对于每一行,并且通过连接三列获得相应文件的路径,则下一个函数将完成这项工作:
Function extractLine(filePath As String) As String
extractLine = Split(CreateObject("Scripting.FileSystemObject").OpenTextFile(filePath, 1).ReadAll, vbCrLf)(2)
End Function
它可以称为:
Sub extractStrings()
Dim i As Long, arr, arrFin, lastRow As Long

lastRow = Range("A" & rows.count).End(xlUp).Row 'supposing that 'C:\' exists in A:A column
arr = Range("A2:C" & lastRow).value
ReDim arrFin(1 To UBound(arr), 1 To 1)

For i = 1 To UBound(arr)
arrFin(i, 1) = extractLine(arr(i, 1) & arr(i, 2) & arr(i, 3))
Next i
'drop the processed array content at once:
Range("D2").Resize(UBound(arrFin), 1).value = arrFin
End Sub

关于excel - 在 excel 中提取 .tbl 文件的特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72255285/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com