我正在使用来自外部源的输出文件 (CSV) - 用于进行数据抓取。
但是,“报废”的网页没有相同的精确模式,因此在输出文件(Excel)中,我有偏移的列。幸运的是,这些值包含标题的名称,所以我正在寻找解决“偏移”问题的解决方案。
PS:有些行是偏移的,有些不是。偏移量可以是 1、2 或更多单元格,所以我不能这样做: value(i+1) = i 因为没有逻辑
在此处下载文件,或在此处下载相同的信息:
FRAME BRAKES SADDLE WHEELS etc….
brakes: info1 saddle:info1 wheels:info1
frame:info2 brakes:info2 saddle:info2 wheels: info2
brakes: info3 saddle:info3 wheels:info3
我不知道 vlookUp 结合一些正则表达式是否可以解决问题,
你有什么建议?
编辑:在此处下载文件
VBA 代码
Option Explicit
Sub test()
Dim Titles As Variant
Dim Data As Variant
Dim Dataline As String
Dim NumDataPoints As Long
Dim FirstTitle As String
Dim WhichTitle As Long
Dim Offset As Long
Dim rowcount As Long
Open "SORTcannodale2013.csv" For Input As #1
Line Input #1, Dataline
Titles = Split(Dataline, ",")
For Offset = 0 To UBound(Titles)
Cells(1, Offset + 1) = Titles(Offset)
Next
rowcount = 2
'While Not EOF(1)
Line Input #1, Dataline
Data = Split(Dataline, Chr$(34) & "," & Chr$(34))
FirstTitle = LCase(Left(Data(0), InStr(Data(0), vbLf) - 1))
For WhichTitle = 0 To UBound(Titles)
If Titles(WhichTitle) = FirstTitle Then Exit For
Next
For Offset = WhichTitle To UBound(Titles)
Cells(rowcount, Offset + 1) = Data(Offset - WhichTitle)
Next
rowcount = rowcount + 1
'Wend
Close #1
End Sub