標題:
[發問]
小弟想教各位高手有關於抓取多個*.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
不是很懂對應關係,測試看看差異在哪?
Sub ex()
fd = ThisWorkbook.Path & "\"
fs = Dir(fd & "*.csv")
Do Until fs = ""
With Workbooks.Open(fd & fs)
With .Sheets(1)
lot = Replace(.[B6].Value, "'", "")
lin = Replace(Split(lot, "-")(0), Mid(Split(lot, "-")(0), 3, 5), "")
ps = Split(lot, "-")(1)
drv = .[D4].Value
tm = IIf(.[H12] = "Bef", "[Before]", "[After]")
ts = .[F12].Value
ar1 = Array(lot, lin, ps)
ar2 = Array(drv, tm, ts, ts)
Set ar3 = .[F21:F24]
Dim ar(24)
For i = 27 To 34
For j = 1 To 3
ar(s) = .Cells(i, j * 2).Value
s = s + 1
Next
Next
End With
With ThisWorkbook.Sheets("Test Data")
Set a = .[A65536].End(xlUp).Offset(1, 0)
a.Resize(, 3) = ar1
a.Offset(, 6).Resize(, 4) = ar2
a.Offset(, 10) = ar3(1, 1)
a.Offset(, 17) = ar3(2, 1)
a.Offset(, 18) = ar3(3, 1)
a.Offset(, 19) = ar3(4, 1)
a.Offset(, 20).Resize(, 24) = ar
End With
.Close 0
End With
fs = Dir
Loop
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/)