【发布时间】:2016-04-19 13:55:00
【问题描述】:
我有一个 .csv,格式如下:
[TestHeader]FIELDS,"LANGUAGE","LC_NUMERIC","CELLNAME","TESTTYPE","REPORTER","TITLE","STARTDATE","STARTTIME","ENDDATE","ENDTIME"DATATYPE,"文本(80)","文本(80)","文本(64)","文本(80)","文本(80)","文本(80)","文本(12)","文本(20)","文本(12)","文本(20)"
我想把这些数据放在一个多维数组中,就像它在一张表中一样。如果单元格为空,则数组中的单元格也将为空。
我正在尝试使用以下内容,但它只将数据放在不适合我需要的一维数组中。
Dim Delimiter As String
Dim TextFile As Integer
Dim FilePath As String
Dim FileContent As String
Dim LineArray() As String
Dim DataArray() As String
'Inputs
Delimiter = ","
FilePath = emiFilePath
'Open the text file in a Read State
TextFile = FreeFile
Open FilePath For Input As TextFile
'Store file content inside a variable
FileContent = Input(LOF(TextFile), TextFile)
'Close Text File
Close TextFile
'Separate Out lines of data
LineArray() = Split(FileContent, Delimiter, -1, vbTextCompare)
'Read Data into an Array Variable
'Re-Adjust Array boundaries
ReDim Preserve DataArray(UBound(LineArray))
'
'Load line of data into Array variable
For y = LBound(LineArray) To UBound(LineArray)
DataArray(y) = Replace(LineArray(y), Chr(34), vbNullString)
Next y
【问题讨论】:
-
使用数组的任何具体原因?您是否考虑过
ADO读取 CSV? -
什么是 ADO?我使用数组是因为我对它们非常熟悉。
-
@PankajJaju 指的是一种读取 CSV 文件的方法。这个网站上有十几个帖子显示了他所指的内容。只需寻找它们:stackoverflow.com/search?q=excel+vba+ado+csv 然而,如果您想坚持您的解决方案(我会支持),那么我不会将整个文件读入字符串,而是逐行读取,如下所示(接受的解决方案): stackoverflow.com/questions/11185191/…