Board logo

標題: [發問] 文字檔要如何反序匯入Excel 呢? [打印本頁]

作者: mgame168    時間: 2011-5-19 19:33     標題: 文字檔要如何反序匯入Excel 呢?

我有一文字檔須從檔案的最後一行開始
然後倒數的二行........到檔首匯入Excel

請問該如何改呢? 感謝各位!!!

Dim MyString As String

Open "MYFILE" For Input As #1    ' 開啟輸入檔。
i = 0
Do While Not EOF(1)              ' 檢查是否已到檔尾。
    Input #1, InputData          ' 讀入一行資料。
    ActiveCell.Offset(0, i).Value = MyString   
    i = i + 1
Loop
Close #1                         ' 關閉檔案。
作者: GBKEE    時間: 2011-5-19 21:13

回復 1# mgame168
  1. Sub Ex()
  2. Dim MyString As String, i%
  3. Open "MYFILE" For Input As #1    ' 開啟輸入檔。
  4. i = 0
  5. Do While Not EOF(1)              ' 檢查是否已到檔尾。
  6.     Line Input #1, MyString      ' 將資料讀入變數中。
  7.     ActiveCell.Offset(i).Value = MyString     '往下寫入
  8.     'ActiveCell.Offset(0, i).Value = MyString '往右寫入
  9.     i = i + 1
  10. Loop
  11. Close #1
  12. End Sub
複製代碼

作者: Hsieh    時間: 2011-5-19 22:51

倒著讀喔?
  1. Sub nn()
  2. Dim Ar()
  3. Open "E:\restr.txt" For Input As #1
  4. Do While Not EOF(1)
  5. Line Input #1, mystr
  6. ReDim Preserve Ar(s)
  7. Ar(s) = StrReverse(mystr)
  8. s = s + 1
  9. Loop
  10. Close #1
  11. ay = Split(StrReverse(Join(Ar, Chr(10))), Chr(10))
  12. [A1].Resize(UBound(ay) + 1, 1) = Application.Transpose(ay)
  13. End Sub
複製代碼

作者: GBKEE    時間: 2011-5-20 06:06

開啟的檔案不是特大時可試試
  1. Sub Ex()
  2.     Dim mystr$, Allstr$, Ar
  3.     Open "D:\Test\Test.txt" For Input As #1  
  4.     Do While Not EOF(1)
  5.         Line Input #1, mystr
  6.         Allstr = IIf(Allstr <> "", Allstr & "GBK", "") & mystr
  7.     Loop
  8.     Close #1
  9.     Ar = Split(Allstr, "GBK")
  10.     [A1].Resize(UBound(Ar) + 1, 1) = Application.Transpose(Ar)
  11. End Sub
複製代碼

作者: mgame168    時間: 2011-5-20 10:21

感謝兩位版主大力幫忙~

或許我沒把問題說清楚
假設
     E:\restr.txt
restr.txt 內容
6
5
4
3
2
1

欲匯入Excel 的結果
A    B    C    D    E    F
1    2    3    4    5    6

GBKEE 版主
可能我用的資料與您的不同, 所以依您方法得到的結果如下:
6
5
4
3
2
1

Hsieh 版主
依您方法得到的結果, 倒著讀對了, 但用陣列匯入的結果
並不是我想要的, 想再請您幫忙,匯入的結果能否由直式
改橫式?

您方法的結果
1
2
3
4
5
6

欲匯入Excel 的結果
A    B    C    D    E    F
1    2    3    4    5    6

感謝兩位的幫忙
作者: GBKEE    時間: 2011-5-20 11:34

本帖最後由 GBKEE 於 2011-5-20 11:36 編輯

回復 5# mgame168
是這樣嗎?      不要打謎題
  1. Sub Ex()
  2.     Dim mystr$, Allstr$, Ar
  3.     Open "D:\Test.txt" For Input As #1
  4.     Do While Not EOF(1)
  5.         Line Input #1, mystr
  6.         If Len(mystr) > 0 And mystr <> " " Then Allstr = IIf(Allstr <> "", Allstr & "***", "") & mystr
  7.     Loop
  8.     Close #1
  9.     Ar = Split(StrReverse(Allstr), "***")
  10.     [A1].Resize(1, UBound(Ar)) = Ar
  11. End Sub
複製代碼

作者: mgame168    時間: 2011-5-20 13:48

回復 6# GBKEE

感謝GBKEE 版大 !!

對了~ 我要的就是您的方法~ 感恩您 !!

另將Hsieh版大的方法改成
[A1].Resize(1, UBound(Ar) + 1) = Ar
也是我要的

謝謝兩位的幫忙 !!




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