Board logo

標題: [發問] vba 抓多個txt檔案的最後一行 [打印本頁]

作者: ilikeiceblue    時間: 2013-7-22 15:10     標題: vba 抓多個txt檔案的最後一行

以下是多個例子的txt檔案內容
(每一個txt長度不同)
best1.txt:
61566.1459848279  36804.0615  7070  64
61566.1459848279  36804.0615  7070  64
61566.1459848279  36804.0605  7070  62

best2.txt:
78919.8415585053  53106.9944  8570  53
78919.8415585053  43939.0331  7685  53
78919.8415585053  40147.0986  7685  53
78919.8415585053  40147.0986  7685  61

我想要判斷如果下一行讀到空白或是抓length-1最後一個的位置藍色那些方入每一列Excel欄位
最後在自己用最簡單的以空白分隔@@

想請教一下VBA的寫法, 我只會去抓特定行數, 因為此txt檔案每個行數都不會一樣, 所以想請教一下板上的大大們orz
作者: GBKEE    時間: 2013-7-22 17:39

本帖最後由 GBKEE 於 2013-7-22 18:24 編輯

回復 1# ilikeiceblue
如何抓取多個檔案連續匯入,可搜討論區尋看看.
  1. Sub Ex_匯入文字檔()
  2. Dim Fs As Object, d, s, i As Integer, ii As Integer
  3.     txt = "d:\TEST\TEST.TXT"                                    '文字檔目錄
  4.     Set Fs = CreateObject("Scripting.FileSystemObject").OpenTextFile(txt, 1)
  5.     d = Split(Fs.readall, Chr(10))                                  'Chr(10) 分割為陣列
  6.     Fs.Close                                                        '關閉文字檔
  7.      With ActiveSheet
  8.         .Cells.Clear                                                '清除所有資料
  9.         For i = 1 To UBound(d)                                      '陣列的第2元素開始
  10.             If Len(d(i)) = 0 Or i = UBound(d) Then                  'Len(d(i)) = 0->空白列(要的是上一個元素)
  11.                 s = d(IIf(i < UBound(d), i - 1, i))                 'i = UBound(d) ->陣列的最後元素
  12.                 s = Split(s, "  ")                                  '"  " 分割為陣列
  13.                 '61566.1459848279  36804.0605  7070  62             此字串以兩空格分隔
  14.                 ii = Application.CountA(.[a:a])                     '計算A欄的資料數
  15.                 ii = IIf(ii = 0, i, ii + 1)                         '沒有=第1列,有資料須往下一列
  16.                 .Cells(ii, "a").Resize(1, UBound(s) + 1) = s
  17.             End If
  18.         Next
  19.     End With
  20. End Sub
複製代碼





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