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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.01.2010, 21:48   #1
Garik_
 
Регистрация: 21.01.2010
Сообщений: 4
По умолчанию Ограничение Excel (до 32768 строки)

Добрый всем вечер.
Не поможет ли кто советом.

При чтении текстового файла в Excel заполнение происходит только до 32768 строки. Как обойти это ограничение на одном листе?
Офис 2003.

отрывок кода :

........
Open "c:\file.txt" For Input As #f

While Not EOF(f)
i = i + 1
Line Input #f, str
Arr() = Split(str, sDelimeter)

For j = 0 To UBound(Arr())
Sheets("list").Cells(i + 1, j + 2).Value = Arr(j)
End If
Next j

Wend
Close #f
.........

Заранее Спасибо.
Garik_ вне форума Ответить с цитированием
Старый 21.01.2010, 22:43   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

шутить изволите?
ответ - НИКАК.
Как можно обойти ограничение, если это ограничение заложено разработчиками в данное ПО?!

Либо разбивайте на разные листы/книги/диапазоны,
либо переходите на MS Excel 2007 (там 1 048 576 строк — Технические характеристики и ограничения Microsoft Excel).

Последний раз редактировалось Serge_Bliznykov; 21.01.2010 в 22:46.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.01.2010, 22:46   #3
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте Garik_.
В "отрывок кода" не попало объявление используемой переменной i, а проблема скорее всего в ней, тип Integer действительно ограничен размером 32768. У меня два совета: поменяйте тип переменной на Long - в ближайшем будущем таблицы Excel не достигнут его размера, откажитесь от такого способа заполнения листа Excel - применяя конструкцию с использованием библиотеки ADO, подобные проблемы не возникнут и скорость выполнения задачи будет радовать.
Евгений.

Последний раз редактировалось Teslenko_EA; 21.01.2010 в 22:49.
Teslenko_EA вне форума Ответить с цитированием
Старый 21.01.2010, 23:50   #4
Garik_
 
Регистрация: 21.01.2010
Сообщений: 4
По умолчанию

Спасибо за советы. Дело было с переменной.

to Teslenko_EA:
Цитата:
откажитесь от такого способа заполнения листа Excel - применяя конструкцию с использованием библиотеки ADO, подобные проблемы не возникнут и скорость выполнения задачи будет радовать
...я для моего примера (см.код выше) код с использованием библиотеки ADO для заполнения Excel листа как будет выглядеть ? Дело в том, что я новичок, недавно начал изучение VBA.

Заранее спасибо.
Garik_ вне форума Ответить с цитированием
Старый 22.01.2010, 00:14   #5
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Выложите "кусочек" Вашего текстового файла, для изучения структуры, и тогда можно будет подумать о создании конструкции.
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 22.01.2010, 00:45   #6
Garik_
 
Регистрация: 21.01.2010
Сообщений: 4
По умолчанию

Цитата:
Выложите "кусочек" Вашего текстового файла, для изучения структуры, и тогда можно будет подумать о создании конструкции.
Евгений.
Decem;TUBE;/04002;29 Oct 2009;OPEN;GOOD;
Janu;TUBE;/04002;27 Oct 2009;0JA;OPEN;GOOD;
Ferbu;HOLE;/04005;25 Oct 2009;0JA;;;NO_info;
Aprlir;TUBE;/04003;21 Oct 2009;0JA;OPEN;
Mercu;TUBE;unknown; 30 Aug 2005;unset;;
Flawe;TUBE;unknown;30 Aug 2005;unset;;
Toniru;TUBE;unknown;30 Aug 2005;unset;;


разделитель ";"
обыкновенное чтение в excel текстового файла, только строчек много, около 40000-50000.

Спасибо.
Garik_ вне форума Ответить с цитированием
Старый 22.01.2010, 22:08   #7
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Garik_, глядя на Ваши данные думаю - возможно я погорячился и вполне достаточно просто отрыть текстовый файл в Excel?
Код:
Sub openTXT()
Const sDir = "c:\", sFile = "FileName", sExt1 = ".txt", sExt2 = ".xls"
Workbooks.OpenText Filename:=sDir + sFile + sExt1, Origin:=1251, _
    StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, Semicolon:=True
    ActiveWorkbook.SaveAs Filename:=sDir + sFile + sExt2
    'ActiveWorkbook.Close False
End Sub
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 22.01.2010, 22:45   #8
Garik_
 
Регистрация: 21.01.2010
Сообщений: 4
По умолчанию

Спасибо за совет.
Garik_ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ограничение на натуральные (дискретные) числа в excel tulik Microsoft Office Excel 8 18.01.2010 21:17
Как удалить все строки в Excel содержащие.. Dux Microsoft Office Excel 15 11.09.2009 04:41
Ограничение прав пользователей в файле excel add_sky Microsoft Office Excel 2 02.08.2009 14:13
Как в Excel красить строки? Xamer Microsoft Office Excel 1 24.06.2009 11:53
Добавление строки Excel EdNovice Общие вопросы Delphi 1 19.04.2007 09:08