|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
20.10.2014, 17:58 | #12 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Да. Или прямо перед значением добавляйте апостроф.
webmoney: E265281470651 Z422237915069 R418926282008
|
20.10.2014, 19:07 | #13 |
Пользователь
Регистрация: 28.03.2009
Сообщений: 18
|
Hugo121, спасибо, но как-то оно не так работает. После экспорта остаются ячейки с ошибками: #ИМЯ?
|
20.10.2014, 19:45 | #14 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
а что мешает попробовать прежде, чем задавать вопрос?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
20.10.2014, 23:28 | #15 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
Если и этот макрос не так работает,то иду выращивать капусту.
Анализ,обработка данных Недорого
|
23.10.2014, 11:22 | #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. |
24.10.2014, 13:12 | #17 |
Пользователь
Регистрация: 28.03.2009
Сообщений: 18
|
Я разобрался почему макрос doober вылетает - когда размер записи более 64Кб. В этом случае лучшим решением было бы наверно проверять размер каждой записи и если она слишком велика - в нужную ячейку напротив идентификатора писать строку "<Too big>" и возможно писать это или заливать красным цветом.
|
04.11.2014, 20:34 | #19 | |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
Это не крах макроса,это слишком большие строки
Внесите изменения в этот фрагмент. Код:
Цитата:
Анализ,обработка данных Недорого
|
|
06.11.2014, 17:36 | #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 |