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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.08.2013, 02:32   #1
ottomellon
 
Регистрация: 29.07.2013
Сообщений: 9
По умолчанию Ограничение по строкам в макросе

Подскажите пожалуйста, как можно убрать ограничения по кол-ву строк при формировании отчета с помощью макроса?
Так получилось что макрос был написан для экселя с ограничением строк до 65тыс. но для моего объема данных этого мало и я перенес его в новый эксель с кол-вом строк - миллион.
Но теперь когда запускаю макрос, то выскакивает ошибка и формирование заканчивается на строке номер 65275.
ottomellon вне форума Ответить с цитированием
Старый 03.08.2013, 08:07   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

пример строки, в которой приизошла ошибка и номер ошибки дали бы Вам хоть какую-то надежду получить ответ, файл-пример - еще больше шансов. а так... проверю свои экстрасенсорные способности (которых раньше не замечалось за мной)
скорее всего где-то переменнную типа Integer нужно сменить на Long
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 03.08.2013, 11:19   #3
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Integer должен был загнуться раньше... Ну разве что там какой-то выборочный отбор и эта переменная считает отобранное, и оно ранее никогда не доходило до предела... А анализируемые строки вообще не считались (Do-Loop, как любят...)
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 03.08.2013, 13:20   #4
ottomellon
 
Регистрация: 29.07.2013
Сообщений: 9
По умолчанию

Этот макрос нашел тут на форуме.
Работает просто идеально для моих нужд, но вот когда больше 65тыс. строк выдает ошибку.
Скрины и сам файлик я выкладываю...
Изображения
Тип файла: jpg screenshot1.jpg (117.8 Кб, 133 просмотров)
Тип файла: jpg screenshot2.jpg (116.2 Кб, 137 просмотров)
Вложения
Тип файла: rar WorkSheet.rar (16.8 Кб, 14 просмотров)
ottomellon вне форума Ответить с цитированием
Старый 03.08.2013, 13:55   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

а так:
Код:
                    End Select
                    With ThisWorkbook
                      lLastRowMyBook = .Sheets(DataSheet).Cells.SpecialCells(xlLastCell).Row + 1
                      iRngAddress = .Range(.Cells(lLastRowMyBook, 1), .Cells(lLastRowMyBook + lLastrow, iLastColumn)).Address
                      Sheet.Range(iCopyAddress).Copy Destination:=.Sheets(DataSheet).Range(iRngAddress)
                    End With
среди исходных есть файлы формата офис2003?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 03.08.2013, 14:27   #6
ottomellon
 
Регистрация: 29.07.2013
Сообщений: 9
По умолчанию

Среди файлов которые обрабатываются все типа - Лист Microsoft Office Excel 97-2003 (.xls)

Скрины с заменой которую вы предложили выкладываю...

В этот раз ошибка была раньше чем в исходном файле.
Изображения
Тип файла: jpg screenshot3.jpg (120.2 Кб, 133 просмотров)
Тип файла: jpg screenshot4.jpg (118.9 Кб, 132 просмотров)
ottomellon вне форума Ответить с цитированием
Старый 03.08.2013, 15:19   #7
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

заменили Вы все корректно (в правильном месте).
пишете, что что теперь ошибка раньше, а на картинках та же строка желтым зарисована что и раньше

вот теперь не понятно что там может быть.
высылайте данные сюда igorgoУХОukr.net, зазберусь
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 03.08.2013, 16:04   #8
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Вероятно как диапазон копирования указываете целиком столбцы? Нельзя!
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 03.08.2013, 16:06   #9
Watcher_1
Форумчанин
 
Аватар для Watcher_1
 
Регистрация: 22.06.2011
Сообщений: 325
По умолчанию

Когда макрос в дебаг вываливается эти переменные что содержат?
lLastRowMyBook
lLastrow
iLastColumn
Мне кажется в одной из них косяк..., т.е. нет значения
Заказать макрос можно на сайте http://excel4you.ru/
Watcher_1 вне форума Ответить с цитированием
Старый 03.08.2013, 17:57   #10
ottomellon
 
Регистрация: 29.07.2013
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Вероятно как диапазон копирования указываете целиком столбцы? Нельзя!
Я указываю начиная с определенной ячейки.
Без проблем формируется когда кол-во строк не превышает 65 тыс.

Цитата:
Сообщение от Watcher_1 Посмотреть сообщение
Когда макрос в дебаг вываливается эти переменные что содержат?
lLastRowMyBook
lLastrow
iLastColumn
Мне кажется в одной из них косяк..., т.е. нет значения
lLastRowMyBook = 65276
lLastrow = 15226
iLastColumn = 46

Я вижу проблемы в том, что в старом excel'e 65536 строк и когда макрос пытается вставить очередной массив данных со следующей книги, то ему не хватает строк и он просто их даже не начинает вставлять, потому что в том что получается когда нажимаю END информация заканчивается на одной книге и не начинается сбор с другой.
ottomellon вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
написать программу которая вводит по строкам с квеатуры двумерные массивы и вычисляет сумму его элементов по строкам таня99 Паскаль, Turbo Pascal, PascalABC.NET 3 23.05.2012 20:23
Есть ли ограничение в 97-2010 версиях Excel ограничение на размер массива? clever77 Microsoft Office Excel 18 15.05.2011 00:50
Сортировка в макросе Илья Николаевич Microsoft Office Excel 2 05.07.2010 15:34
Функции в макросе. Rom1k06 Microsoft Office Excel 7 19.10.2008 11:22
Константы в Макросе valerij Microsoft Office Excel 2 03.02.2008 23:33