【发布时间】:2020-04-28 13:42:26
【问题描述】:
我使用以下代码将 csv 文件作为二维数组加载到内存中:
Sub readcsv()
Dim wbCSV As Workbook
Dim Data As Variant
Application.ScreenUpdating = False
Set wbCSV = Workbooks.Open(Filename:="C:\Users\File.csv")
With wbCSV
Data = .Sheets(1).UsedRange.Value
.Close
End With
End Sub
下一步我想搜索数据并挑选一些。关键是我想这样做而不打开 csv 本身。有没有办法搜索加载的数组?我也知道 csv 中感兴趣的数据的 i-j。 csv 使用 ;作为分隔符。使用此代码
data(i,j)
我希望在 i-j 单元格中有元素,但它返回无意义的字符串。所以问题是,vba 是否识别 ;以这种方式加载文件时作为分隔符?或者我需要将加载的数据排列成矩阵的形式,然后调用特定的单元格?
更新:
我发现了
data(i,j)
返回奇怪的字符串,因为 vba 认为 , 作为分隔符。例如,当我在第 5 行有 a;b;1,2345;c data(5,2) 返回 2345;c
谢谢
【问题讨论】:
-
如果知道i-j的数据,参考
data(i,j) -
@bigben 我只需要访问该数组的特定元素。
-
您可以使用文件 I/O 将 CSV 文件作为文本文件打开,逐行遍历数据,直到找到您要查找的内容,然后关闭文件。
-
你说的是random-access file吗?
-
请发布数据文件的样本,并说明您要提取的数据。