Board logo

標題: 請問如何將選取的txt檔內容匯入指定儲存格呢? [打印本頁]

作者: Mindyj    時間: 2013-4-23 14:47     標題: 請問如何將選取的txt檔內容匯入指定儲存格呢?

本帖最後由 Mindyj 於 2013-4-23 14:48 編輯

請教各位前輩,我目前爬文找到將txt檔以excel模式開啟

可是尚未找到任何可以直接讀取和複製txt檔內容貼上至指定sheet1儲存格A6,並且固定儲存格大小

可以請教各位前到該如何執行這個部份嗎? 謝謝

[attach]14754

爬文的內容如下
Dim fileToOpen
     fileToOpen = Application.GetOpenFilename(FileFilter:="Text Files (*.txt),*.txt", Title:="please select the file")
     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
作者: Mindyj    時間: 2013-4-24 07:45

補上txt檔與希望結果

[attach]14765[/attach]
回復 1# Mindyj
作者: Hsieh    時間: 2013-4-24 10:43

回復 2# Mindyj
  1. Sub ex()
  2. fs = ThisWorkbook.Path & "\import.txt"
  3. Open fs For Input As #1
  4. i = 6
  5. Do While Not EOF(1)    ' 執行迴圈直到檔尾為止。
  6.     Line Input #1, TextLine
  7.     Cells(i, 1) = TextLine
  8.     i = i + 1
  9. Loop
  10. Close #1
  11. End Sub
複製代碼

作者: Mindyj    時間: 2013-4-24 14:08

小女不才,不知如何更改此碼,問題如下
問題1. txt檔會隨著使用者所選擇的檔案而有所不同,所以才會使用macro進行檔案選取的動作
問題2. 使用者在選取檔案後,macro會將選取檔案之內容複製並貼上至指定sheet與指定儲存格中
作者: Hsieh    時間: 2013-4-24 15:01

回復 4# Mindyj
  1. Sub import()
  2. Dim A As Range
  3. fs = Application.GetOpenFilename("Text Files (*.txt), *.txt")
  4. Set A = Application.InputBox("選擇文字檔要放置的位置", , "$A$1", , , , , 8)
  5. Open fs For Input As #1
  6. Do While Not EOF(1)    ' 執行迴圈直到檔尾為止。
  7.     Line Input #1, TextLine
  8.     A.Offset(i, 0) = TextLine
  9.     i = i + 1
  10. Loop
  11. Close #1
  12. End Sub
複製代碼

作者: Mindyj    時間: 2013-4-24 15:11

感謝版主、測試成功!!!   
作者: Mindyj    時間: 2013-6-3 11:20

請問版主、如果選擇的檔案型態不限制、並將貼上欄位固定在A1該怎麼修改呢?
我試過將檔案類型改為all,可是並不適用。
  1. Dim A As Range
  2. fs = Application.GetOpenFilename("Files (*.all), *.all")
  3. Set A = Application.InputBox("Choose the file position", , "$A$1", , , , , 8)
  4. Open fs For Input As #1
  5. Do While Not EOF(1)    ' Loop to the end of the file?
  6.     Line Input #1, TextLine
  7.     A.Offset(i, 0) = TextLine
  8.     i = i + 1
  9. Loop
  10. Close #1
複製代碼
回復 5# Hsieh
作者: luhpro    時間: 2013-6-5 21:32

請問版主、如果選擇的檔案型態不限制、並將貼上欄位固定在A1該怎麼修改呢?
我試過將檔案類型改為all,可是 ...
Mindyj 發表於 2013-6-3 11:20


你的 02. 行程式要改成 :
fs = Application.GetOpenFilename("All Files (*.*), *.*")
即可.

在 Windows 系統中 *.all  並不是 "檔案型態不限制" 的意思,
而是如 :
1.all
efaew.all
cfg.all
這類 副檔名為 all 的檔案,
若想列出 "檔案型態不限制" 的檔案,
應該要用  *.*   來作為篩選條件的文字表示.
作者: Mindyj    時間: 2013-6-6 07:27

回復 8# luhpro

謝謝luhpro,我學習到實用的一課。

不過現在延伸出另一個問題,要怎麼樣才能讓任何檔案都轉為html的方式貼到excel上面呢?
作者: luhpro    時間: 2013-6-8 07:15

回復  luhpro
...
不過現在延伸出另一個問題,要怎麼樣才能讓任何檔案都轉為html的方式貼到excel上面呢?
Mindyj 發表於 2013-6-6 07:27

看不懂你的意思.

轉為html的方式貼到excel?
在 Excel 本身的角度上,
它上面的每個儲存格都可以有自己的格式,
但印象中似乎並沒有所謂的html格式,
還是說你想要把 Excel 當瀏覽器用嗎?

若是那或許你可以先新增一個表單,
再插入一個WebBrowser物件來實現.
(至於怎麼實現我也不會,可能要請其他人回答了)




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