返回列表 上一主題 發帖

[發問] 請問如何自動匯入外部資料

[發問] 請問如何自動匯入外部資料

想請教大家Excel如何自動匯入外部資料的相關問題...
目前每天都會有固定的檔案需要匯入到Excel不同的Sheet
但是每天的檔名都有加上日期,所以檔名會隨著日期改變,
想請問大家如何讓Excel自動匯入這些檔案到指定的Sheet?
例如:
9月17日,我必須將檔名
"F03-MB-1_0916_103051.log"的檔案內容匯入到Excel的"MB-1" sheet
"F03-MB-2_0916_103051.log"的檔案內容匯入到Excel的"MB-2" sheet
"F03-MB-3_0916_103051.log"的檔案內容匯入到Excel的"MB-3" sheet
"F03-MB-4_0916_103051.log"的檔案內容匯入到Excel的"MB-4" sheet
"F03-MB-5_0916_103051.log"的檔案內容匯入到Excel的"MB-5" sheet
"F03-MB-6_0916_103051.log"的檔案內容匯入到Excel的"MB-6" sheet
....總共有50個檔案要匯入到50個sheet (若當天缺少檔案,則該sheet內容為空白)

9月18日,我必須將檔名
"F03-MB-1_0917_103051.log"的檔案內容匯入到Excel的"MB-1" sheet
"F03-MB-2_0917_103051.log"的檔案內容匯入到Excel的"MB-2" sheet
"F03-MB-3_0917_103051.log"的檔案內容匯入到Excel的"MB-3" sheet
"F03-MB-4_0917_103051.log"的檔案內容匯入到Excel的"MB-4" sheet
"F03-MB-5_0917_103051.log"的檔案內容匯入到Excel的"MB-5" sheet
"F03-MB-6_0917_103051.log"的檔案內容匯入到Excel的"MB-6" sheet
....總共有50個檔案要匯入到50個sheet  (若當天缺少檔案,則該sheet內容為空白)

0916 SEL.zip (21.95 KB)

回復 1# sandra_wang
試試看
  1. Sub 匯入文字檔_Ex()
  2.     Dim MyPath As String, TheDate As String, TheFile As String, ShName As String, Mystr As String, Rng As Range, E As Variant
  3.     MyPath = ThisWorkbook.Path & "\"                    '文字檔所在的目錄
  4.     TheDate = Format(Date - 1, "mm/dd")                 '取的日期
  5.     On Error Resume Next                                'DIR 找不到檔案會產生錯誤
  6.     TheFile = Dir(MyPath & "*MB-*" & TheDate & "*.log") '尋找檔案
  7.     If Err.Number > 0 Then MsgBox "找不到  " & TheDate & "  檔案": Exit Sub
  8.     Do While TheFile <> ""
  9.         On Error GoTo ShAdd                             '工作表中沒有 ShName會產生錯誤
  10.         ShName = Mid(TheFile, InStr(TheFile, "MB-"), InStr(TheFile, "_") - InStr(TheFile, "MB-"))
  11.         Set Rng = Sheets(ShName).Cells(Rows.Count, "A").End(xlUp)
  12.         If Rng <> "" Then Set Rng = Rng.Offset(1)
  13.         Open MyPath & TheFile For Input As #1        '開啟文字檔
  14.             Do While Not EOF(1)                      '不是檔案底部時 執行迴圈
  15.                 Input #1, Mystr                      '從已開啟的循序讀取資料,並將資料指定給變數。->mystr
  16.                 For Each E In Split(Mystr, Chr(10))
  17.                     Rng = E
  18.                     Set Rng = Rng.Offset(1)
  19.                 Next
  20.             Loop
  21.         Close #1                                 '關閉文字檔
  22.         TheFile = Dir
  23.     Loop
  24.     Exit Sub
  25. ShAdd:
  26.     ThisWorkbook.Sheets.Add.Name = ShName
  27.     Err.Clear
  28.     Resume
  29. End Sub
複製代碼

TOP

第4行錯誤 TheDate = Format(Date - 1, "mm/dd")
應該是TheDate = Format(Date - 1, "mmdd")

TOP

回復 3# jackie-ap
謝謝指正

TOP

本帖最後由 sandra_wang 於 2011-10-11 14:14 編輯


我把資料放在桌面的SEL資料裡面上,

第三行的路徑是填入 C:\Documents and Settings\97051909\桌面\SEL

剛剛試過了,但是會出現"找不到1010檔案"
可以請大家幫我看看哪裡弄錯嗎?

TOP

回復 5# sandra_wang
   C:\Documents and Settings\97051909\桌面\SEL\
你有加上嗎?

TOP

本帖最後由 sandra_wang 於 2011-10-12 13:43 編輯

可以了~~感謝版主!!

2011-10-12 下午 01-07-07.jpg (58.04 KB)

2011-10-12 下午 01-07-07.jpg

TOP

        靜思自在 : 虛空有盡.我願無窮,發願容易行願難。
返回列表 上一主題