【问题标题】:Search through loaded csv file with ; as the delimiter使用 ; 搜索加载的 csv 文件作为分隔符
【发布时间】: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吗?
  • 请发布数据文件的样本,并说明您要提取的数据。

标签: excel vba csv


【解决方案1】:

您可以使用文件 I/O 将 CSV 文件作为文本文件打开,逐行遍历数据,直到找到所需内容,然后关闭文件

【讨论】:

  • 什么是文件 I/O?
猜你喜欢
  • 2020-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-26
  • 2018-11-20
  • 2016-03-12
相关资源
最近更新 更多