Excel VBA文本文件到二维数组
我是excel vba新手。我想读取一个包含如下文本的文本文件:Excel VBA文本文件到二维数组,excel,vba,Excel,Vba,我是excel vba新手。我想读取一个包含如下文本的文本文件: John Smith Engineer Chicago Bob Alice Doctor New York Jane Smith Teacher St. Louis 所以,我想把它转换成一个2D数组,所以如果我打印(3,3),它应该返回'Teacher'。 我能够将整个文件内容读入一个字符串,但在将其转换为字符串时遇到困难 类似上面的二维数组。请就如何进行提供建议。谢谢除非文本文件有特定的结构,否则您会有点困难。可能使之更容
John Smith Engineer Chicago
Bob Alice Doctor New York
Jane Smith Teacher St. Louis
所以,我想把它转换成一个2D数组,所以如果我打印(3,3),它应该返回'Teacher'。
我能够将整个文件内容读入一个字符串,但在将其转换为字符串时遇到困难
类似上面的二维数组。请就如何进行提供建议。谢谢除非文本文件有特定的结构,否则您会有点困难。可能使之更容易的事情有:
- 文本文件是否在每行末尾包含换行符
- 所有名称是否按照您的示例采用[FirstName][LastName]格式 或者有些人可能有更多/更少的词
- 职业总是紧跟在名字后面吗
- 职业(非常)有限吗
- 空格是分隔符
- 最后一列是City,它可以包含一个空格
- 共有4列
- 名字
- 姓
- 职业
- 城市/地点
While Not EOF(my_file)
Line Input #my_file, text_line
// text_line contains the independent line
i = i + 1
// i is the line number
Wend
这是我们检索每一行的方式
Split ( Expression, [Delimiter], [Limit], [Compare] )
这将为您提供列表中的每个项目。对于索引<3(基于0的索引),它们是唯一的数据列,您可以根据需要处理它们。
对于索引>=3,将它们合并为一个字符串
Join( SourceArray, [Delimiter] )
在本例中,您可能希望将分隔符设为一个简单的空格,因为split函数将删除该空格
这将允许您按原样解析数据
但是,如果可以控制文本文件的导出,则应尝试将其导出为CSV文件,以供将来参考
祝你好运