2017-01-09 92 views
1

我想要的是:将记事本中的数据复制到工作表(从范围A1开始)。Excel VBA将文本从文件放到工作表中

Test

我的尝试:

Sub Test() 
Dim testfile, textline 

testfile = Application.GetOpenFilename() 
Open testfile For Input As #1 

Do Until EOF(1) 
    Line Input #1, textline 
Loop 
Close #1 

ActiveWorkbook.Sheets("Sheet1").Range("A1").Value = textline 
End Sub 

结果: enter image description here

任何建议,为什么我做错了,它不会抢在记事本中的所有文本,只是第一行?谢谢。

+0

您只使用A1的范围,它只是每次覆盖它。 –

+0

实际上,它只会写入'A1' *一次* - 它需要进入循环。 – Comintern

+0

如果没有编码,您可以将记事本文件拖放到Excel中,并将其放入所有行中。它应该由标签自动描绘,但您可以使用数据 - >文本到列并指定其他参数。 – Cyril

回答

3

你几乎在那里:)。只需要将每个textline我分开写一行,因为现在您只更改Range("A1").Value

Sub Test() 
Dim testfile, textline 

testfile = Application.GetOpenFilename() 
Open testfile For Input As #1 

i = 1 
Do Until EOF(1) 
    Line Input #1, textline 
    ActiveWorkbook.Sheets("Sheet1").Range("A" & i).Value = textline 
    i = i + 1 
Loop 
Close #1 

End Sub