vba - 在 UFT 中拆分单元格
问题描述
我有一个文本文档 (.txt),我有n
必须拆分的行,但关键是我没有分隔符。我知道每个不变的变量的长度。
例如,第一个变量是从 25 到 35 的字符;第二个,从 36 到 47;然后从 48 到 78,然后从 79 到 119,一直到该行的第 360 个字符。
我想解决方案是双循环,每行一个,每个变量一个,但我无法理解。
如果您需要更多信息,请询问,我完全迷路了。
谢天谢地,
解决方案
您需要采取的步骤:
- 打开文件
- 读一行
- 确认该行是 360 个字符
- 将行的块分配给不同的变量
- 用变量做事
- 阅读另一行并重复直到 EOF
1 & 2:您的工作簿需要对 Microsoft 脚本运行时的引用才能让您访问 FileSystemObject。我让你研究一下。
创建一个 FileSystemObject 并使用它来创建一个带有文件路径的 TextStream。
currentLine = textStream.ReadLine()
Do Until textStream.EOF
If Len(currentLine) = 360 Then
firstChunk = Mid$(currentLine, 25, 10)
secondChunk = Mid$(currentLine, 36, 11)
thirdChunk = Mid$(currentLine, 48, 30)
fourthChunk = Mid$(currentLine, 78, 30)
' Do stuff with chunks
End If
currentLine = textStream.ReadLine()
Loop
在适当的时候,您可能会喜欢并有一个数组,其中填充了成对的项目,详细说明了一个块的起点以及它有多少个字符,例如:
Dim arrChunkPoints As Variant
Dim arrChunks As Variant
arrChunkPoints = Array(25,10, _
36,11, _
48,30, _
78,30)
ReDim arrChunks(UBound(arrChunkPoints)\2) ' Integer returned
这将允许您跨过 arrChunkPoints 中的项目,并使用 Mid$() 使用 currentLine 的一部分填充 arrChunk 的每个元素,但填充来自 arrChunkPoints 的值。但这可能是另一天。
推荐阅读
- python - 无法在 Windows 7 32 位上安装 Spacy
- jquery - Jqgrid 与 Jquery 和 bootstrap 的兼容性
- arrays - N1QL couchbase 查询 - 更新动态 JSON 对象中的数组。(删除嵌套在 Json 对象中的数组元素)
- c# - 将 C# 代码拆分为 2 种方法以更可靠
- azure-storage - 扩展 Azure 存储 GUI
- node.js - Braintree“订阅”和“附加组件”
- perl - 如何在 Perl 中将总线一元化和/减少一点?
- python - 如何在python Tkinter程序中将变量参数传递给MYSQL数据库查询
- java - Springboot 应用程序已启动,但 POST 请求始终返回“未找到”
- bash - find 列出的文件列表的 md5sum