Board logo

標題: txt文字檔匯入excel VBA? [打印本頁]

作者: if208808    時間: 2012-7-5 14:36     標題: txt文字檔匯入excel VBA?

我有一個txt的文字檔,我已建立一個Button(讀檔)的icon,如何將文字檔中的資料匯入excel?
txt檔內容:
14:49:48        14:49:54        6        9        8        1        下行
14:54:50        14:55:12        22        13        6        7        下行
14:54:53        14:55:29        36        11        5        6        下行
14:54:52        14:55:43        51        11        4        7        下行
14:54:54        14:55:57        63        11        3        8        下行
14:54:57        14:56:15        78        11        1        10        下行
14:56:51        14:57:00        9        4        8        4        上行
14:56:50        14:57:15        25        4        10        6        上行
14:59:34        14:59:55        21        13        1        12        下行
14:49:41        14:49:57        16        11        12        1        上行
14:51:05        14:51:12        7        7        8        1        上行
都是以"空格"來區分,我知道複製資料貼到excel再用資料剖析的空格來分辨:,如何點Button就將14:49:48匯入A1,14:49:54匯入B1,6匯入C1...以此類推。
作者: boyao    時間: 2012-7-5 16:01

直接用excel去開啟文字檔
開啟後就會有資料剖析ㄉ選擇頁面出現了

Sub Macro1()
    Workbooks.OpenText Filename:="C:新增文字文件.txt" _
        , Origin:=950, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
        xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False, _
        Comma:=False, Space:=True, Other:=False, FieldInfo:=Array(Array(1, 1), _
        Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1)), _
        TrailingMinusNumbers:=True
End Sub
作者: lamihsuen    時間: 2012-7-6 18:44

回復 2# boyao

boyao大大:  可以解釋一下你的語法嗎?  謝謝
作者: boyao    時間: 2012-7-6 22:08

開啟檔案ㄉ路徑
  Workbooks.OpenText Filename:="C:新增文字文件.txt"
資料剖析的那些打勾選項(連續空格設定為單1.其他都不勾選)
      , Origin:=950, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
        xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False, _
        Comma:=False, Space:=True, Other:=False,
設定分類選項 1~7為第幾類.後面那個1是設定顯示.隱藏.或格式
FieldInfo:=Array(Array(1, 1),Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1)),  TrailingMinusNumbers:=True

最簡單的做法...
直接開啟空白Excel.然後錄製巨集
接著開啟你所要轉換的文字檔.依照你要的資料剖析格式執行一次
再開啟程式碼.修改一下路徑就ok了
作者: lamihsuen    時間: 2012-7-6 22:26

回復 4# boyao

boyao大大    已經了解  謝謝你的解說. 感恩
作者: chiahuo    時間: 2012-11-30 11:14

請問可以把選取檔案部份,做成選取方式,以利不懂VBS的同事使用呢?
作者: mark15jill    時間: 2012-11-30 11:32

回復 6# chiahuo


    引用 boyao 大大的程式  Workbooks.OpenText Filename:="C:新增文字文件.txt"

方法1.用textbox 方法
     新增一個 textbox 元件,將 輸入的檔案名稱、目錄 設為紅色區段
    例如
      dkk = textbox1.text       '此處的 textbox1.text 資料必須包含目錄 + 檔案名稱  如 C:\新增文字文件.txt
       Workbooks.OpenText Filename:= dkk

        可參考 以下文章(討論區內有相似文章 )
        http://forum.twbts.com/thread-1592-1-2.html

方法2 下拉選單
         新增下拉選單元件,將目錄預設入元件內,搜尋後的檔案名稱再列出來。
作者: stillfish00    時間: 2012-11-30 11:38

回復 6# chiahuo
Sub Macro1()
    Dim fileToOpen
    fileToOpen = Application.GetOpenFilename(FileFilter:="Text Files (*.txt),*.txt", Title:="請選擇檔案")
    If fileToOpen <> False Then

        Workbooks.OpenText Filename:=fileToOpen _
        , origin:=950, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
        xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False, _
        Comma:=False, Space:=True, Other:=False, FieldInfo:=Array(Array(1, 1), _
        Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1)), _
        TrailingMinusNumbers:=True
    End If
End Sub
作者: qqchange    時間: 2013-1-18 11:58

如果想匯入指定儲存格呢?(沒有依序匯入)
14:49:48欄內容匯入C1
14:49:54欄內容匯入A1,
6欄內容匯入B1...以此類推
作者: boyao    時間: 2013-1-19 21:34

回復 9# qqchange


他無法不依序指定匯入
選定要匯入資料的項目.不要的資料就設定不匯入
重複匯入幾次就可以了...
作者: qqchange    時間: 2013-1-22 10:34

了解,謝謝boyao大大
作者: 7777    時間: 2017-10-2 19:56

本帖最後由 7777 於 2017-10-2 19:58 編輯

直接用excel去開啟文字檔
開啟後就會有資料剖析ㄉ選擇頁面出現了

Sub Macro1()
    Workbooks.OpenText Filename:="C:新增文字文件.txt" _
        , Origin:=950, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
        xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False, _
        Comma:=False, Space:=True, Other:=False, FieldInfo:=Array(Array(1, 1), _
        Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1)), _
        TrailingMinusNumbers:=True
End Sub


能請問~

如何可以不再開新檔下
直接在
現有的excel檔案中,
Sheet2的工作表
A5匯入

感謝





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