返回列表 上一主題 發帖

如何用VBA匯入CSV檔?

如何用VBA匯入CSV檔?

本帖最後由 am0251 於 2011-9-6 16:26 編輯

有高手可以教我一下如何用VBA匯入CSV檔呢?還可以自選列和分隔的符號,謝謝~~!
50 字節以內
不支持自定義 Discuz! 代碼

感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 9# GBKEE


    您好  想詢問 這樣直接匯入 中文會變成亂碼 會有解嗎?!

TOP

回復 11# toromru


    sub zz()
    sheets.copy
    activeworkbook.saveas "test"
    end sub
    '發自我的小米手機

TOP

回復 2# jimmyhk


    你好 想詢問 這樣開啟後 有辦法自動另存到指定位址的xls檔案嗎?

    如指定到 "C:\test"  這樣!!!

TOP

謝謝回覆,可是我用"錄製"的方法得到了下面的巨集,有沒有辦法簡單的方法寫出來呢?
  1. Sub csv()
  2. '
  3. ' csv Macro
  4. '

  5. '
  6.     With ActiveSheet.QueryTables.ADD(Connection:= _
  7.         "TEXT;E:\Excel\270710.csv", Destination:=Range("$A$1"))
  8.         .Name = "270710"
  9.         .FieldNames = True
  10.         .RowNumbers = False
  11.         .FillAdjacentFormulas = False
  12.         .PreserveFormatting = True
  13.         .RefreshOnFileOpen = False
  14.         .RefreshStyle = xlInsertDeleteCells
  15.         .SavePassword = False
  16.         .SaveData = True
  17.         .AdjustColumnWidth = True
  18.         .RefreshPeriod = 0
  19.         .TextFilePromptOnRefresh = False
  20.         .TextFilePlatform = 950
  21.         .TextFileStartRow = 1
  22.         .TextFileParseType = xlDelimited
  23.         .TextFileTextQualifier = xlTextQualifierDoubleQuote
  24.         .TextFileConsecutiveDelimiter = True
  25.         .TextFileTabDelimiter = True
  26.         .TextFileSemicolonDelimiter = False
  27.         .TextFileCommaDelimiter = True
  28.         .TextFileSpaceDelimiter = True
  29.         .TextFileColumnDataTypes = Array(1, 1, 9, 9, 1, 1, 1)
  30.         .TextFileTrailingMinusNumbers = True
  31.         .Refresh BackgroundQuery:=False
  32.     End With
  33. End Sub
複製代碼
50 字節以內
不支持自定義 Discuz! 代碼

TOP

回復 8# am0251
  1. Sub Ex()
  2.     Dim 匯出檔 As String, 匯入檔 As Workbook
  3.     Set 匯入檔 = ActiveWorkbook
  4.     'Set 匯入檔 = Workbooks("TEST.XLS")
  5.     匯出檔 = "D:\TEST\270710.CSV"
  6.     With Workbooks.Open(匯出檔).Sheets(1)
  7.         匯入檔.Sheets(1).Range("A:A") = .Range("B:B").Value
  8.         匯入檔.Sheets(1).Range("B:B") = .Range("E:E").Value
  9.         .Parent.Close False    '關閉 匯出檔
  10.     End With
  11. End Sub
複製代碼

TOP

本帖最後由 am0251 於 2011-9-29 13:25 編輯

謝謝回覆,可能是我表達的不是很好,這個檔案是我用"資料 - 從文字檔"的方法匯入的,"SHEET1"分隔符號是用了,"逗點" 和 "空格","SHEET2"就是我要的目的了,只有第2和第5行匯入了,我只是沒辦法寫出來........ Inport CSV.rar (122.98 KB)
50 字節以內
不支持自定義 Discuz! 代碼

TOP

回復 6# am0251
  1. Sub Ex()
  2.     Dim 匯出檔 As String, 匯入檔 As Workbook
  3.     Set 匯入檔 = ActiveWorkbook     'Set 匯入檔 = Workbooks("TEST.XLS")
  4.     匯出檔 = "D:\TEST\270710.CSV"
  5.     With Workbooks.Open(匯出檔).Sheets(1)
  6.         .Range("A5").Resize(5).EntireRow.Copy 匯入檔.Sheets(1).[A1]
  7.         '.Range("A5").Resize(5) ->5列  ,  EntireRow 整列範圍
  8.           .Parent.Close False    '關閉 匯出檔
  9.     End With
  10. End Sub
複製代碼

TOP

270710.rar (18.22 KB)
謝謝兩位的回覆,只是luhpro大大的寫法有點難,小的沒看懂多少,其實我只是想"匯入"CSV"檔,而不是"開啟"因為我要選擇"分隔符號",如"TAB鍵" "分號" "逗點" "空格" 等方法,還有就是匯入的行數,如這個檔案,我的分隔符號是 "逗點" 和 "空格",匯入的行數只是第2行和第5行,該怎麼寫呢?
50 字節以內
不支持自定義 Discuz! 代碼

TOP

        靜思自在 : 真正的愛心,是照顧好自己的這顆心。
返回列表 上一主題