Board logo

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

作者: leoman0002    時間: 2013-4-22 03:59     標題: 小弟想教各位高手有關於抓取多個*.CSV 內的部份數據

本帖最後由 leoman0002 於 2013-4-22 04:01 編輯

小弟想教各位高手有關於抓取多個*.CSV 內的部份數據,小弟怕說明不夠詳盡已帶檔讓各位大大看

原本是使用錄製的巨集,但是檔案數量很多...電腦又不是很好,不知道是不是檔案開開關關視窗切來切去
的關係,=.= 常常當機,有可能抓取*.CSV 檔可以不必開啟檔案就能抓取資料貼入指定的 資料匯整.XLS 中嗎?
作者: leoman0002    時間: 2013-4-22 04:15

抱歉夾帶的檔案有問題  我重新夾檔(因為超過三分鐘系統說不能編輯 >"<)
作者: mark15jill    時間: 2013-4-22 08:10

本帖最後由 mark15jill 於 2013-4-22 08:13 編輯

回復 2# leoman0002


    不能編輯但能自刪帖..
     重複發文....

      看不出想要的結果關聯在哪....
作者: GBKEE    時間: 2013-4-22 16:04

回復 2# leoman0002
CSV的資料是固定的嗎?
是哪些數據要貼上資料匯整xls.xls何處,要說明啊.
作者: leoman0002    時間: 2013-4-22 16:23

回復 4# GBKEE


    我不太會說明,我貼上一個圖片,黃色標示的是我需要的數據,CSV 檔我在PO文時有附帶上了

CSV檔是固定的格式沒有錯,因為檔名會隨著日期不同而有所改變,所以錄製的巨集沒辦法用(功力不夠)

一次抓取多個CSV並將其值匯入資料匯整xls EXCEL 檔中不知可不可行!!
作者: leoman0002    時間: 2013-4-22 16:28

回復 3# mark15jill


    真不好意思,因為真的還不太熟悉操作造成大家的困擾

真的很耽心自己說明的意思大家看不懂 >"<
作者: Hsieh    時間: 2013-4-22 16:43

回復 5# leoman0002

你把123.csv內要讀取部分該如何對應填寫到資料彙整.xls
用人工填入後上傳,才知道你資料要怎麼儲存
作者: leoman0002    時間: 2013-4-22 16:53

回復 7# Hsieh


    我已經手動將值填入"資料匯整.xls" ,我就知道我表達的意思會讓人看不懂 :Q

希望mark15jill 大大 有空幫我看一下 ^^  感激不盡 ^^
作者: leoman0002    時間: 2013-4-23 12:50     標題: RE: 小弟想教各位高手有關於抓取多個*.CSV 內的部份數據

本帖最後由 leoman0002 於 2013-4-23 12:52 編輯

更正一下 >"< 希望各位大大能夠有空幫我看一下  

這是我目前使用的巨集(常常會讓電腦當機)
這是csv 壓縮檔  


用論壇上傳的方式常常出錯,我暫時先用雲端硬碟方的式,造成不便請多包涵
作者: leoman0002    時間: 2013-4-23 13:00

http://cht.tw/x/wa4z0  下載位置

論壇的操作還不太熟...用高級模式打的超鏈結 =.= 都沒出來
作者: Hsieh    時間: 2013-4-23 22:21

回復 10# leoman0002

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

   [attach]14758[/attach]
作者: leoman0002    時間: 2013-4-23 23:35

抱歉我不太會整理資料 =.= 我不知道怎麼說明才好,我把相關的對應打在EXCEL 報表裡

其實以前有人寫,但是卻是含Access 資料庫方式寫,我們的電腦..只准用"WORD & EXCEL "
最後...我們還是用傳統的"手工"....希望大家能幫幫忙 謝謝

PS:如果拿Access 資料庫版改成不用Access 資料庫的方式會不會更麻煩?
作者: Hsieh    時間: 2013-4-24 00:40

回復 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
複製代碼

作者: leoman0002    時間: 2013-4-24 01:26

不知道為什麼 抓第二筆就出現"陣列索引超出範圍"

我帶上我手上的csv 您幫我看看是哪裡有問題

其實剛剛我有按巨集..都沒反應..原來是csv要放在同一個資料匣,如果改成像選檔方式

會很困難嗎?
作者: mark15jill    時間: 2013-4-24 11:33

看不懂規律性為何....

檔案內素質與提供之xls素質無法對照
作者: leoman0002    時間: 2013-4-24 21:41

請問可以解釋您說的意思嗎? 我對EXCEL 真的沒有很了解
不過Hsieh 大大幫我轉到資料讓我看見道到署光 讓我好感動!!
我手頭上有一個ACCESS版,可是公司卻不能裝access 所以...讓事情變得相當麻煩
作者: Hsieh    時間: 2013-4-24 22:06

回復 16# leoman0002

最主要是對應欄位的問題,如果要抓取CSV檔案的位置都是相同的
你就要讓別人知道CVS的那些儲存格資料要寫入EXCEL的彙整檔案
欄位是如何對應?上傳的資料就應該要以上傳的內容作對應
你沒發現EXCEL手動填入的資料與你上傳的CVS內容不同嗎?
如果不是直接複製CVS儲存格內容,那就該說明資料的取得規則
作者: leoman0002    時間: 2013-4-24 23:25

你所說的的值跟手動的不同,是因為Hsieh 大大沒有注意到通用格式,所以儲存格改成通用格式就一樣了,這個我有發現儲存格的問題..我以為你有發現 >"<
作者: Hsieh    時間: 2013-4-24 23:40

回復 18# leoman0002
非也,有些欄位根本在CSV檔內找不到
作者: leoman0002    時間: 2013-4-25 06:52

本帖最後由 leoman0002 於 2013-4-25 06:55 編輯

嗯 你說的應該是我第二次說明的那次 N1AD24DC-1  判斷線別 N1C 的那種嗎
的確是非當麻煩,不過Hsieh 大大寫的那些就很夠我用了!!
但是要先解決陣列索引超出範圍 @@

我沒有很懂..僅懂些皮毛,Hsieh 大大寫得我還要花點時間去研究才行!!
學海無涯...突然發現自己好渺小
作者: mark15jill    時間: 2013-4-25 08:01

嗯 你說的應該是我第二次說明的那次 N1AD24DC-1  判斷線別 N1C 的那種嗎
的確是非當麻煩,不過Hsieh 大大寫 ...
leoman0002 發表於 2013-4-25 06:52


基本上,如果要發問,會有以下幾種情形

1.簡易=>單純提出 問題、原始碼 或 圖檔。

2.中等問題=>提出問題<詳細>、原始碼、圖檔、檔案<須與問題內容、格式對應>

3.高等問題=>提出問題<詳細>、原始碼、圖檔、檔案<須與問題內容、格式對應>、簡略代入

樓主的資料與所提之數據不同,這樣說實在,很難讓人協助
作者: leoman0002    時間: 2013-4-25 22:50

造成大家的困擾深感抱歉!

下次我會多多注意 ^^




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)