2017-01-09 5 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, и он будет помещен во все строки. Он должен автоматически указывать вкладки, но вы можете использовать Data -> Text to Column и указать другие параметры. – Cyril

ответ

3

Вы почти здесь :). Просто нужно написать каждую отдельную строку, потому что теперь вы меняете только 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 
Смежные вопросы