Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2014, 12:02   #1
piRoman
 
Регистрация: 18.02.2014
Сообщений: 5
По умолчанию Вставка из текстового файла в эксель

Подскажите, есть ли стандартные функции в эксель 2003, или другие способы - вставки текста из файла TXT в таблицу эксель, таким образом, чтобы каждый тип данных вставлялся в ОТДЕЛЬНОЙ ячейке строки эксель? К сожалению -простой вставкой получается вся строка из TXT в одной ячейке, что не делает возможным дальнейшую обработку/сортировку данных по отдельным значениям ! .... Для примера, прилагаю текстовый файл из двух строк (таких в исходнике может быть больше тысячи).. С Уважением.
Вложения
Тип файла: rar ООО Юг.rar (316 байт, 24 просмотров)

Последний раз редактировалось piRoman; 31.10.2014 в 12:15.
piRoman вне форума Ответить с цитированием
Старый 31.10.2014, 12:13   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

стандартной функции
Код:
Вставить_TXT_чтобы_каждый_тип_данных_вставлялся_в_отдельную_ячейку_строки
в Екселе нет, но можно написать, комбинируя в определенном порядке существующие
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 31.10.2014, 12:29   #3
piRoman
 
Регистрация: 18.02.2014
Сообщений: 5
По умолчанию

если не затруднит, поподробнее или попроще объясните - как? это макрос или какойнибуть поиск с заменой? в чём главная проблема, что эксель не понимает разделителей в приложенном текстовом файле?
piRoman вне форума Ответить с цитированием
Старый 31.10.2014, 13:31   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
Sub ReadSameTxt()
  Dim fs, TxS, r As Long, s As String
  Set fs = CreateObject("Scripting.FileSystemObject")
  Set TxS = fs.openTextFile("i:\3.txt")
  For r = 1 To 4: s = TxS.readline: Next
  r = 0
  Do
    s = TxS.readline:  s = Right(s, Len(s) - 1):  r = r + 1
    Cells(r, 1).Resize(1, 7).Value = Split(s, "|")
  Loop Until TxS.AtEndOfStream
  TxS.Close
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 31.10.2014, 14:13   #5
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Есть ведь стандартный иморт данных из текста - поищите там по менюшкам... В 2003 это в данных.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 02.11.2014, 10:00   #6
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Можно и так:
Код:
Sub Main()
    Dim a(): Application.ScreenUpdating = False
    Workbooks.OpenText Filename:=ThisWorkbook.Path & "\ООО Юг.txt", Origin:=866, Other:=True, OtherChar:="|"
    a = ActiveSheet.UsedRange.Value: ActiveWorkbook.Close False
    Cells.Delete: [A1].Resize(UBound(a, 1), UBound(a, 2)).Value = a
End Sub
Подразумевается, что текстовый файл имеет имя "ООО Юг.txt" и находится в той же папке, что и файл Excel с этим макросом. Если нужно, замените путь и имя на требуемые.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 04.11.2014, 00:04   #7
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Есть ведь стандартный иморт данных из текста.
Супер, а не один макрос почему-то не сработал.
В txt:
Код:
1 2
3 4
5 6
И все в одной ячейке.

А так рекодер записал(- стандартный импорт данных из текста) всё чётко расставляет.
Код:
With ActiveSheet.QueryTables.Add(Connection:="TEXT;C:\Dat.txt", Destination _
        :=Range("$A$1"))
        .Name = "Dat"
        .TextFileParseType = xlFixedWidth
        .TextFileFixedColumnWidths = Array(16)
        .Refresh BackgroundQuery:=False
End With

Последний раз редактировалось valerij; 04.11.2014 в 00:58.
valerij вне форума Ответить с цитированием
Старый 04.11.2014, 00:17   #8
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Валера, как бы это по-мягче...
посмотри внимательно ты хоть этими макросами винчестер не поцарапал?
если на диске винчестера где-то царапина - это все, его можно выкидывать

чтобы посмотреть не-ли царапин, надо отвинтить плату с микросхемами, снять контактные шлейфы, а винчестер расковырять отверткой, тогда станут видны пластины.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 04.11.2014 в 00:20.
IgorGO вне форума Ответить с цитированием
Старый 04.11.2014, 00:39   #9
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
Валера, как бы это по-мягче...
посмотри внимательно ты хоть этими макросами винчестер не поцарапал?
если на диске винчестера где-то царапина - это все, его можно выкидывать

чтобы посмотреть не-ли царапин, надо отвинтить плату с микросхемами, снять контактные шлейфы, а винчестер расковырять отверткой, тогда станут видны пластины.
Как бы тоже, по-мягче...
Псаки не пиши....


Вопрос чёткий
Цитата:
вставки текста из файла TXT в таблицу эксель, таким образом, чтобы каждый тип данных вставлялся в ОТДЕЛЬНОЙ ячейке строки эксель?
valerij вне форума Ответить с цитированием
Старый 04.11.2014, 00:56   #10
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

вопрос не четкий, вопрос не полный, вопрос дилетантский.

чем значение 1 отличается по типу от 2, 3, 4, 5, 6?
это все данные одного типа назовем их числами или цифрами, если хочешь.

а согласно твоего "четкого" вопроса:
Цитата:
каждый тип данных вставлялся в ОТДЕЛЬНОЙ ячейке
ты именно так и пишешь
Цитата:
И все в одной ячейке.
ты сам определись что тебе нужно, данные одного типа в одну ячейку? или еще чего-то?
подойди критично к четко и однозначно сформулированному тобой вопросу, и догадайся сам сколько варантов ответа на него можно получить...
а по поводу:
Цитата:
Супер, а не один макрос почему-то не сработал
понимаешь, если неандертальцу дать ноутбук - он в лучщем случае прибьет с его помощью ежа, не обколется и сможет поужинать. но ноутбук-то не перестал при этом быть ноутбуком, просто в руках неандертальца - это булыжник плоской формы.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 04.11.2014 в 00:59.
IgorGO вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставка блока в Автокаде по данным из Эксель? ValeraVOLS Microsoft Office Excel 23 25.01.2013 11:02
Вставка таблицы эксель в ворд n0str0m0 Microsoft Office Word 3 22.05.2012 11:51
Вставка втроки в связанную эксель таблицу 95979 Microsoft Office Access 1 13.02.2012 12:19
вставка текстового ресурса delphi Yogik™ Помощь студентам 6 10.03.2009 19:20
Вставка/импорт массива значений из текстового файла в столбец таблицы bungler Microsoft Office Excel 4 08.01.2009 19:09