![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#12 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
Да. Или прямо перед значением добавляйте апостроф.
webmoney: E265281470651 Z422237915069 R418926282008
|
![]() |
![]() |
![]() |
#13 |
Пользователь
Регистрация: 28.03.2009
Сообщений: 18
|
![]()
Hugo121, спасибо, но как-то оно не так работает. После экспорта остаются ячейки с ошибками: #ИМЯ?
|
![]() |
![]() |
![]() |
#14 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
а что мешает попробовать прежде, чем задавать вопрос?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
![]() |
#15 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
![]()
Если и этот макрос не так работает,то иду выращивать капусту.
Анализ,обработка данных Недорого
|
![]() |
![]() |
![]() |
#16 |
Пользователь
Регистрация: 28.03.2009
Сообщений: 18
|
![]()
doober
Вообще-то, выращивание капусты тоже дело хорошее. Но вижу, что макросы писать Вы таки точно умеете. После интенсивного тестирования оказалось, что макрос на большинстве баз выполняет свою работу почти безукоризненно - четко и правильно. Особенно понравилось, что часть условий вынесена в раздел Константы, так намного проще управлять макросом. Можно было бы еще добавить в константы интервал столбцов с идентификаторами, т.к. оказалось, что иногда это A:C иногда A:F или A:D. Да и комментарии кода не помешали бы для понимания. Искреннее вам спасибо за такую хорошую работу и потраченное время. Однако, поскольку в мире нет ничего идеального, то ложка дегтя будет такой: 1) на отдельных базах макрос вылетает с ошибкой "Runtime error 7 - Out of memory" на строке Sh.Cells(XX.Row, 10) = ArrayBase.Item(Key) Я пытаюсь сейчас найти точное место, которое приводит к ошибке. Хочу спросить, нет ли для этого кода какого-то заведомо известного ограничения - типа особый символ в записи, что всегда даст ошибку, или размер отдельной записи, например, не более 32 или 64Кб? 2) макрос чувствителен к регистру. Иногда это хорошо, иногда плохо. Можете ли Вы добавить константу, например РЕГИСТР, если она false или 0, макрос работает как сейчас, если true или 1 - макрос учитывает регистр? Это не критично, но если можно, то было бы гораздо лучше. 3) почему-то часть ячеек, для идентификаторов которых не найдена запись, остаются пустыми, а часть со строкой "<Not found>". А тут нужна ясность, ведь потом мне еще нужно будет писать макрос, чтобы переместить все такие строки на отдельный лист для удаления или исправления. Поэтому если такое возможно - то либо везде "<Not found>", либо пусто, но везде одинаково (а еще лучше и красным цветом). 4) на время работы макроса все замирает. Даже как-то жутко - 5, 10, 15 мин ничего не происходит, пока макрос не отработает. Не знаешь, то ли перегружать ПК, то ли еще ждать. Можно ли добавить какую-то инфу типа "запись хх из хх" в строку статуса или отдельное окошко, чтобы показать, что макрос жив и здоров? Это, конечно, замедлит работу, но будет спокойнее, да и всегда можно закомментировать. И последнее. Наверно, это самое важное. Очень хотелось бы (да это и необходимо) проверить правильно ли макрос все обрабатывает. Лучший для меня способ для этого - сравнить новую базу с исходной как текст. Найдется ли у Вас время, хотя бы в ближайшую неделю-две, написать макрос, который запишет базу обратно в текстовый файл? Конечно, с возвратом строк НАЧАЛО, КОНЕЦ и т.п., кроме тех переводов строки, которые удалены при импорте. Там Excel наверно захочет поставить вокруг каждой строки двойные кавычки, поэтому нужен будет нестандартный подход или макрос просто запишет как есть, а потом откроет Word и в нем удалит кавычки и сохранит. Последний раз редактировалось domo22; 23.10.2014 в 11:27. |
![]() |
![]() |
![]() |
#17 |
Пользователь
Регистрация: 28.03.2009
Сообщений: 18
|
![]()
Я разобрался почему макрос doober вылетает - когда размер записи более 64Кб. В этом случае лучшим решением было бы наверно проверять размер каждой записи и если она слишком велика - в нужную ячейку напротив идентификатора писать строку "<Too big>" и возможно писать это или заливать красным цветом.
|
![]() |
![]() |
![]() |
#19 | |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
![]()
Это не крах макроса,это слишком большие строки
Внесите изменения в этот фрагмент. Код:
Цитата:
Анализ,обработка данных Недорого
|
|
![]() |
![]() |
![]() |
#20 |
Пользователь
Регистрация: 28.03.2009
Сообщений: 18
|
![]()
Да, внесенные изменения обеспечили работу макроса даже с базами, имеющими очень большие по размеру записи. Огромное спасибо Вам за помощь, doober
|
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Импорт Большого текстового файла (14 млн. строк) с разбиением | strannick | Microsoft Office Excel | 15 | 01.02.2014 12:55 |
Есть ли способ вставлять кнопки в ячейки таблицы? | Serhantes | Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) | 0 | 27.02.2013 13:54 |
Обработка большого текстового файла и составление по нему отчета | erosss | Помощь студентам | 6 | 05.05.2010 13:18 |
нужно читать слова с текстового файла | artush1984 | Общие вопросы C/C++ | 1 | 18.09.2009 16:12 |
Вставлять ячейки через поля слияния | Nash1 | Фриланс | 3 | 09.07.2009 14:07 |