|
Опять MS Excel
|
|||
---|---|---|---|
#18+
Здравствуйте.Вопрос такой. Использую .interior.Color, чтобы считать цвет ячейки в таблицу .dbf в числовом виде при импорте. Но при экспорте в таблицу .xls выясняется,что .interior.Color не понимает этого значения и окрашивает ячейку в белый цвет. Если присвоить .interior.Color=13434828, то нормально получается. Но при .interior.Color=16777164, этот цвет уже не обрабатывает, вываливается в белый. Есть какое-то ограничения, после которых цвета не распознаются? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2010, 12:10 |
|
Опять MS Excel
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4.
Нормально окрасилась ячейка в голубой цвет. Ищите ошибку в своем коде. Возможно, Вы потом просто затираете этот фон какими-либо еще настройками. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2010, 16:44 |
|
Опять MS Excel
|
|||
---|---|---|---|
#18+
если делать так: oBooks.ActiveSheet.Cells(1,1).Interior.Color = 16777164 то фон ячейки окрашивается в белый цвет в офисе 2003, при этом в офисе 2010 все замечательно. похоже на баг офиса 2003. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2010, 16:40 |
|
Опять MS Excel
|
|||
---|---|---|---|
#18+
Я проверял как раз в Excel 2003. Ищите ошибку у себя. Вы пробовали запустить приведенный код? Ошибка воспроизводится? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2010, 17:55 |
|
Опять MS Excel
|
|||
---|---|---|---|
#18+
ВладимирМЯ проверял как раз в Excel 2003. Ищите ошибку у себя. Вы пробовали запустить приведенный код? Ошибка воспроизводится? Я подозреваю, что это связано с ограничением офиса 2003 на палитру. Если задавать не через Interior.ColirIndex, а через Interior.Color, цвет пытается прописаться в палитру. При этом, длина палитры, если не ошибаюсь, 48 цветов. Похоже, слишком много цветов использовано в книге. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2010, 05:53 |
|
Опять MS Excel
|
|||
---|---|---|---|
#18+
Kruchinin PahanВладимирМЯ проверял как раз в Excel 2003. Ищите ошибку у себя. Вы пробовали запустить приведенный код? Ошибка воспроизводится? Я подозреваю, что это связано с ограничением офиса 2003 на палитру. Если задавать не через Interior.ColirIndex, а через Interior.Color, цвет пытается прописаться в палитру. При этом, длина палитры, если не ошибаюсь, 48 цветов. Насколько я понимаю, не совсем так. В случае задания цвета через RGB() Excel ищет ColorIndex палитры, максимально близкий к заданному цвету. И уже его и использует. Код: plaintext 1. 2. 3. 4. 5. 6.
В данном случае получаем абсолютное попадание. ColorIndex = 20, и Color - не изменился. Но если чуть изменить значение RGB() Код: plaintext 1. 2. 3. 4. 5.
То видим, что после присвоения ColorIndex = 20, а вот Color изменился и стал равен 16777164, а не заданному 16777160 Так что, очевидно, что никаких глюков нет. Это проблема программы. Где-то, что-то "намудрили" в коде ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2010, 14:00 |
|
Опять MS Excel
|
|||
---|---|---|---|
#18+
Да, в Excel можно настроить палитру Сервис \ Параметры \ закладка "Цвет" Посмотрите, может, там кто-то изменил палитру? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2010, 14:03 |
|
Опять MS Excel
|
|||
---|---|---|---|
#18+
Нет, палитру никто не трогал, в программе тоже нормально все, никаких затираний нету, потому как на 2010 офисе отрабатывает замечательно. Алгоритм наипростецкий - приходит файл эксель, там куча разноцветных строк, все это дело делится на отдельные листы экселя с сохранением цвета строк. Брал входящий файл, прямо в нем создаю макрос, который показывает цвет ячейки, потом присваиваю этот цвет другой ячейки и она окрашивается в белый фон. В общем, решили не цвет фона считывать (.Color), а .ColorIndex, и тогда в 2003 все стало нормально раскрашиваться, как и в исходном файле. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2010, 20:38 |
|
Опять MS Excel
|
|||
---|---|---|---|
#18+
На другом принтере попробуйте. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2010, 21:14 |
|
Опять MS Excel
|
|||
---|---|---|---|
#18+
Еще раз повторю вопрос. Вы тестировали в своем "простом коде" или все-таки запустили приведенный здесь пример из 3 строчек прямо в командном окне FoxPro? Т.е. проводили ли тест 1. Вне зависимости от шаблона Excel (если таковой был) 2. Вне зависимости от программного кода FoxPro Первое, что делается в подобных случаях, это "чистый" тест. Максимально независимый от чего-либо. Если он проходит успешно, значит, проблемы в Вашем коде. Если ошибка, значит проблема "внешняя". То, что Вы сделали сейчас, это "сунули голову в песок". Нашли обход, не поняв причину проблемы. Как следствие, подобная проблема "догонит" Вас в самое ближайшее время где-то еще. В каком-то новом виде. Опять будете искать "обход" ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2010, 11:20 |
|
Опять MS Excel
|
|||
---|---|---|---|
#18+
Знакомый ping_09Алгоритм наипростецкий - приходит файл эксель, там куча разноцветных строк, все это дело делится на отдельные листы экселя с сохранением цвета строк. Брал входящий файл, прямо в нем создаю макрос, который показывает цвет ячейки, потом присваиваю этот цвет другой ячейки и она окрашивается в белый фон. Как присваивали-то? Надеюсь, прямым присвоением, а не через посредника? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
Все нормально работает в Excel 2003 SP3 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2010, 11:28 |
|
|
start [/forum/topic.php?fid=41&gotonew=1&tid=1584921]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
11ms |
get first new msg: |
6ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 160ms |
0 / 0 |