Импорт из текстового файла

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Lucky Jo
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 07.07.2004 (Ср) 14:54

Импорт из текстового файла

Сообщение Lucky Jo » 07.07.2004 (Ср) 15:07

Научите, пожалуйста, кто умеет, как с помощью VB-макроса автоматически вставлять данные из файла .TXT в файл .XLS из нужного места текстового файла в нужную ячейку файла Excel.

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 07.07.2004 (Ср) 15:21

Типа так:

Код: Выделить всё
open "c:\1.txt" for input as #1
line input #1,st
sheets(1).cells(1,1).value=st

I don't understand. Sorry.

Lucky Jo
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 07.07.2004 (Ср) 14:54

Сообщение Lucky Jo » 07.07.2004 (Ср) 15:47

Спасибо, сейчас попробую!

Lucky Jo
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 07.07.2004 (Ср) 14:54

Сообщение Lucky Jo » 08.07.2004 (Чт) 11:21

Написал такой вот макрос, с целью закидывания отдельной строки текстового файла в отдельную ячейку листа, а он при запуске подвешивает комп. Что не так?

n = 0
Open "C:\NNN.txt" For Input As #1
Do While Not EOF(1) 'Цикл выясняет кол-во строк в файле
n = n + 1
Loop

Do While Not EOF(1)
Line Input #1, st
For i = 1 To n
Sheets(1).Cells(i, 1).Value = st
Next
Loop
Close

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 08.07.2004 (Чт) 12:20

То, что у тебя выясняет кол-во строк, будет ввыполняться бесконечно :) Потому что надо вставить в его тело что то типа line input #1,st
I don't understand. Sorry.

Lucky Jo
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 07.07.2004 (Ср) 14:54

Сообщение Lucky Jo » 08.07.2004 (Чт) 13:59

Спасибо за ответ!
Честно говоря не совсем понял почему бесконечно...
Но задачу решил (и решается то проще, сам че то замудрил)

Код: Выделить всё
n = 0
Open "C:\NNN.txt" For Input As #1
  Do While Not EOF(1)
    n = n + 1
    Line Input #1, st
    Sheets(1).Cells(n, 1).Value = st
  Loop
Close


Но исходная задача сложнее. В одной строке текстового файла находится несколько значений, разделенных точкой с запятой; каждое из этих значений нужно вставить в отдельную ячейку .XLS-файла.
Подскажите, пожалуйста, как это сделать?

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 08.07.2004 (Чт) 14:05

Это что, CSV? Тогда его можно просто заимпортить встроенными средствами Excel. Типа workbooks.open :)
I don't understand. Sorry.

Lucky Jo
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 07.07.2004 (Ср) 14:54

Сообщение Lucky Jo » 08.07.2004 (Чт) 14:23

А что такое CSV?

В общем вся задача такова: есть некая DOS-прога, в которую ежедневно заносятся данные.
Насколько я понимаю все это хозяйство, программа связана с базой данных BTRIEVE, автор этой давней программы оставил еще некий экзешничек, который все данные за месяц выгружает в текстовый файл. Данные в программу вносятся несколькими людьми из разных мест, так что получать их сразу в Excel не представляется возможности. Мне нужно сотворить отчет в Excel.
Может быть, конечно, есть возможность импортировать данные непосредственно из БД, но для меня это вообще дремучий лес.

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 08.07.2004 (Чт) 16:32

Знаю, что звучит глупо, но можно так: загрузить файл и скопировать данные в clipboard, потом вставить средством Ctrl+V...

Я написал такую прогу, вот посмотри http://bbs.vbstreets.ru/viewtopic.php?t=8320&highlight=grid

Может что-то и поможет


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 27

    TopList