返回列表 上一主題 發帖

[發問] 小弟想教各位高手有關於抓取多個*.CSV 內的部份數據

回復 5# leoman0002

你把123.csv內要讀取部分該如何對應填寫到資料彙整.xls
用人工填入後上傳,才知道你資料要怎麼儲存
學海無涯_不恥下問

TOP

回復 10# leoman0002

請說明圖片紅框的資料該如何對應?

   
學海無涯_不恥下問

TOP

回復 12# leoman0002

不是很懂對應關係,測試看看差異在哪?
  1. Sub ex()
  2. fd = ThisWorkbook.Path & "\"
  3. fs = Dir(fd & "*.csv")
  4. Do Until fs = ""
  5. With Workbooks.Open(fd & fs)
  6.    With .Sheets(1)
  7.    lot = Replace(.[B6].Value, "'", "")
  8.    lin = Replace(Split(lot, "-")(0), Mid(Split(lot, "-")(0), 3, 5), "")
  9.    ps = Split(lot, "-")(1)
  10.    drv = .[D4].Value
  11.    tm = IIf(.[H12] = "Bef", "[Before]", "[After]")
  12.    ts = .[F12].Value
  13.    ar1 = Array(lot, lin, ps)
  14.    ar2 = Array(drv, tm, ts, ts)
  15.    Set ar3 = .[F21:F24]
  16.    Dim ar(24)
  17.    For i = 27 To 34
  18.       For j = 1 To 3
  19.         ar(s) = .Cells(i, j * 2).Value
  20.         s = s + 1
  21.       Next
  22.     Next
  23.    End With
  24.    With ThisWorkbook.Sheets("Test Data")
  25.    Set a = .[A65536].End(xlUp).Offset(1, 0)
  26.    a.Resize(, 3) = ar1
  27.    a.Offset(, 6).Resize(, 4) = ar2
  28.    a.Offset(, 10) = ar3(1, 1)
  29.    a.Offset(, 17) = ar3(2, 1)
  30.    a.Offset(, 18) = ar3(3, 1)
  31.    a.Offset(, 19) = ar3(4, 1)
  32.    a.Offset(, 20).Resize(, 24) = ar
  33.    End With
  34.    .Close 0
  35. End With
  36. fs = Dir
  37. Loop
  38. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復 16# leoman0002

最主要是對應欄位的問題,如果要抓取CSV檔案的位置都是相同的
你就要讓別人知道CVS的那些儲存格資料要寫入EXCEL的彙整檔案
欄位是如何對應?上傳的資料就應該要以上傳的內容作對應
你沒發現EXCEL手動填入的資料與你上傳的CVS內容不同嗎?
如果不是直接複製CVS儲存格內容,那就該說明資料的取得規則
學海無涯_不恥下問

TOP

回復 18# leoman0002
非也,有些欄位根本在CSV檔內找不到
學海無涯_不恥下問

TOP

        靜思自在 : 小事不做、大事難成。
返回列表 上一主題