Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Excel: глюк с шириной столбца

258
14 января 2004 года
SergeySV
1.5K / / 19.03.2003
Сегодня днем, придя на работу столкнулся неожиданно с таким глюком.
Программа работала уже месяц и все было нормально, последний этап - это копирование данных из таблицы, программный запуск Excel, вставка туда содержимого и дальнейшее форматирование отчета для придания ему благородного вида. И вот сегодня, наблюдаю такую интересную картину, понять которую надеюсь мне сможет помочь уважаемый All. Для подбора ширины столбца программно для некоторых столбцов запускатся - автоподбор (xlApp.Selection.Columns.AutoFit), в конце всего действия по форматированию получаются столбцы с шириной немного меньше нужной и при этом в нем показваются только последние символы смещенные влево, т.е.
 
Код:
должно быть так:
[11111111111112]

а показывается вот так:
[2             ]


если вручную запустить для столбца автоподбор ширины, то столбец показывается нормально, НО в предварительном просмотре перед печатью, все равно видно только старая картинка с одиноким последним символом. И только вручную подвигав границу столбца добиваемся нормального отображения данных столбца.


Чего решительно понять не могу, так почему, даже если все символы не умещаются в столбце, он показывает только одинокий последний символ, да еще смещенный влево, а справо от него полная пустота. И предварительный просмотр не хочет отображать изменения в подборе ширины, пока вручную не установишь границу столбца. Что это? глюк ил недокументированная особенность?
478
14 января 2004 года
XtreamAll
279 / / 01.10.2003
Щас в ВБА быстренько накидал (Office XP Professional):

 
Код:
Sub main()
For i = 1 To 10
    With ActiveWorkbook.ActiveSheet
        .Cells(i, 1).Value = 9999999# * 1000 ^ i
        .Cells(i, 1).NumberFormat = "0"
        .Cells(i, 1).Columns.AutoFit
    End With
Next i
End Sub


...все работает нормально...
...попробую в ВБ...
267
14 января 2004 года
Cutty Sark
1.2K / / 17.10.2002
Думаю, что это чистейшей воды глюк. Как с ним бороться? А чёрт его знает... Пробовать варианты... У меня, кстати, некоторые шрифтовые глюки исчезали после перезагрузки компа. А какая версия Экселя?
478
14 января 2004 года
XtreamAll
279 / / 01.10.2003
Кстати, совершенно не пользуюсь в более-менее серьезных прогах под Ёксель чем то типа:

Selection, ActiveSheet, ActiveWorkBook и т.п.

...мне кожется это добавляет вариантов, при которых возможны глюки...

...ссылаюсь только точно, как в коде (см. выше)
478
14 января 2004 года
XtreamAll
279 / / 01.10.2003
Я имел ввиду это:
 
Код:
.Cells(i, 1).Value = 9999999# * 1000 ^i  
.Cells(i, 1).NumberFormat = "0"
.Cells(i, 1).Columns.AutoFit
;) :D
258
14 января 2004 года
SergeySV
1.5K / / 19.03.2003
Используется OfficeXp на win98. Глюк появился как-то сразу и неожидано, до этого на том компе все работало как надо. Правда есть у меня некоторые нехорошие подозрения подозрения. Половина макроса по форматированию вида таблицы написал сам Excel (запись макрос). Я конечно прошелся потом, переделал кое-что, заменил, дополнил. В том числе были и установки параметров страницы перед печатью. Делал я все это на своем компе, а код потом перенесли на другой комп, но с очень похожей конфигурацией: тоже Win98+OfficeXp+ тот же самый сетевой принтер. Так вод при переносе кода он не захотел работать и ругался на одну из строк установки свойства страницы при печати, выкинув ее все пошло. Я так и не понял почему на эту строчку при вроде бы одинаковых конфигурациях ругался офис другого компа... значит все-таки чем-то они отличаются

попробую ща локализовать глюк, опеределить после каких конкретно действий начинается такая белеберда, потом уже помучаем найденную сбойную строку, можно будет, как предлагает XtreamAll, и попробовать указывать явно диапазоны.... вообщем пошел выгонять человека из-за компа и пытать его глюк ;)
258
14 января 2004 года
SergeySV
1.5K / / 19.03.2003
Что показало вскрытие:
от глюка удалось избавиться задавая принудительно ширину столбцов, причем обязательно с запасом. Т.е. автоподбор ширины ставит например 16 и при этом вся строка умещается в ячейке, НО в предварительном просмотре она уже не умещается (и как следствие показывается токо последний символ строки)

Т.е. при предварительном просмотре текст в ячейке занимает немного больше места, чем в просто в ячейке в окне Excel.

C чем это связано не понял. Думаю виноваты настройки-дрова принтера и их интерпретация Excel'ем
478
14 января 2004 года
XtreamAll
279 / / 01.10.2003
Ну а
 
Код:
.Columns.AutoFit
почему не работает???
258
14 января 2004 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by XtreamAll
Ну а
 
Код:
.Columns.AutoFit
почему не работает???



Да нет, это все работает, проблема вообще не с VBA. Просто прикол в том при предварительном просмотре строка не умещается когда в при нормальном просмотре в ячейке все путем. Приходится раздвигать столбец пошире, видно справа пустое место уже даже на еще один символ, а впредварительном просмотре видим, что границы подходят впритык. Вообщем, аномалия.

478
14 января 2004 года
XtreamAll
279 / / 01.10.2003
А ты не пробовал печатать, не обращая внимания на предварительный просмотр???
Я на работе сталкивался с тем, что то, что в просмотре отображается некорректно, печатается нормально...
258
14 января 2004 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by XtreamAll
А ты не пробовал печатать, не обращая внимания на предварительный просмотр???
Я на работе сталкивался с тем, что то, что в просмотре отображается некорректно, печатается нормально...



Кстати нет, не пробовал. Я все больше сталкивался с другим, когда все выглядит нормально а печатается с каким-нибудь приколом.

478
14 января 2004 года
XtreamAll
279 / / 01.10.2003
Попробуй...
...чего то мне не верится, что драйвер принтера каким то образом урезает именно ячейки...
266
15 января 2004 года
mhaturov
901 / / 23.10.2003
Цитата:
Originally posted by XtreamAll
Попробуй...
...чего то мне не верится, что драйвер принтера каким то образом урезает именно ячейки...


Я, конечно, всё очень бегло просмотрел, но, насколько понял, Ёксельный лист Вы форматируете при помощи макроса. А вызываете его из VB, т.е. внешней проги. Крнечно, могёт быть, вопрос не по теме, но почему бы Вам не обрабатывать всё это из внешнего приложения? По крайней мере, проще будет... Хотя, может, я и не прав...

258
15 января 2004 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by XtreamAll
Попробуй...
...чего то мне не верится, что драйвер принтера каким то образом урезает именно ячейки...



Не, не хочет, как показывает в предварительном просмотре, собака, так и печатает. Может глюк еще просходит вот почему: в параметрах страницы стоит - разместить на 1 стр. в ширину и 100 в длинну - т.е. он еще перед печатью занимается маштабированием таблицы, при этом он конечно должен обращать внимание на шрифт, он же не может просто растянуть таблицу по ширине по самые границы листа а по вертикали оставить его как есть, тоды буквы будут непропорциональные, т.е. он подбирает общий маштаб для всей таблицы, чтобы все помещалось и этот маштаб соответственно действует сразу и по вертикали и по горизонтали, чтобы было все пропорционально. Может при этом действии и просходит небольшие подвижки с буквами внутри ячеек..

478
15 января 2004 года
XtreamAll
279 / / 01.10.2003
Я по работе частенько печатаю из Ёкселя...
...масштабирую листы и т.д.
...но с таким, ежели честно, никогда не сталкивалсяP(
...даже не знаю чего еще предположить:{
478
15 января 2004 года
XtreamAll
279 / / 01.10.2003
Я по работе частенько печатаю из Ёкселя...
...масштабирую листы и т.д.
...но с таким, ежели честно, никогда не сталкивалсяP(
...даже не знаю чего еще предположить:{
...а перед строкой там ничего нету???
...ну пробелы или Tab???
258
15 января 2004 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by XtreamAll
Я по работе частенько печатаю из Ёкселя...
...масштабирую листы и т.д.
...но с таким, ежели честно, никогда не сталкивалсяP(
...даже не знаю чего еще предположить:{
...а перед строкой там ничего нету???
...ну пробелы или Tab???



Проверил через Asc? вроде все нормально, ничего лишнего.
Скопировал этот файл на разные компы, там такая же фигня, вот выкладываю здесь, гляньте на столбцы 1,2,3 в предварительном просмотре перед печатью, как у Вас отражается. Посмотрите и напишите, что у Вас, интересно сравнить.

258
15 января 2004 года
SergeySV
1.5K / / 19.03.2003
Никто не глянул на файлик, а???
266
15 января 2004 года
mhaturov
901 / / 23.10.2003
Цитата:
Originally posted by SergeySV
Никто не глянул на файлик, а???


Я качнул, но пока не успеваю посмотреть. Боюсь, и завтра не успею - пошёл вал дел:{

258
15 января 2004 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by mhaturov

Я качнул, но пока не успеваю посмотреть. Боюсь, и завтра не успею - пошёл вал дел:{



Ок, мож кто еще глянет :P

478
15 января 2004 года
XtreamAll
279 / / 01.10.2003
Цитата:
Originally posted by SergeySV


Ок, мож кто еще глянет :P


Глянул...:o
У меня то же, что ты описал:
В ячейках - все Ок, а в предварительном просмотре - только первые цыфры...
...щас гляну, може найду с чем это связано...
...наверняка какие-то настройки...

...на всяк случай: какой у тебя принтер???
у меня - Canon LBP 810

478
15 января 2004 года
XtreamAll
279 / / 01.10.2003
Глянул снова...
причину так и не нашел, но нашел как ее можно устранить...
...выделил твои данные и сделал им автоформат...
...после этого все стало норм. отображаться и печататься...
...следовательно чего то там с форматами не то;)
478
15 января 2004 года
XtreamAll
279 / / 01.10.2003
Глянул снова...
причину так и не нашел, но нашел как ее можно устранить...
...выделил твои данные и сделал им автоформат...
...после этого все стало норм. отображаться и печататься...
...следовательно чего то там с форматами не то;)
258
16 января 2004 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by XtreamAll
Глянул снова...
причину так и не нашел, но нашел как ее можно устранить...
...выделил твои данные и сделал им автоформат...
...после этого все стало норм. отображаться и печататься...
...следовательно чего то там с форматами не то;)



Можно даже не используя автоформат, достаточно просто вручную раздвинуть побольше границу - скрадывать сбоку расстояние конечно же будет, зато все умещается и поэтому показывается все, а не токо последняя цифра.

Правда с автоформатом есть другая интересная штука: если после применения автоформата взять кисточку (формат по образцу) и скопировать формат с другого плохого столбца обратно на исправленный автоформатом столбец, то он уже будет вести себя немного по другому, чем его автоформатированные ранее братья. Теперь после автоподбора ширины он в предварительном просмотре тоже конечно уменьшает ширину ячейки, но елси раньше он показывал токо последний символ смещенный влево (что было весьма странно), то теперь просто переносит последний не умещающийся символ на вторую строку и пытатется показать в ячейке сразу две строки - вообщем его обычное поведение когда не умещается текст.

Правда загадка остается загадкой.

267
16 января 2004 года
Cutty Sark
1.2K / / 17.10.2002
Покрутил я твой файл, Серёж.

Там имеются такие проблемы: шрифт Arial в компутере и шрифт Arial в принтере имеют разную ширину. Я такие глюки встречал. Если ты раздвинешь пошире СТРОКУ, и то, что получится поглядишь в предвосмотре, ты увидишь этот процесс наглядно. Видимо, придётся тебе делать AutoFit, а потом прибавлять к ширине каждой колонки что-то пропорциональное количеству символов. Или попробовать другие шрифты (например с Таймс Нью Роман у меня всё корректно работает).

А ещё для меня загадка, почему для этих ячеек у меня не запускается окно формата ячейки (Ктрл+1)...
258
16 января 2004 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by Cutty Sark
Покрутил я твой файл, Серёж.

Там имеются такие проблемы: шрифт Arial в компутере и шрифт Arial в принтере имеют разную ширину. Я такие глюки встречал. Если ты раздвинешь пошире СТРОКУ, и то, что получится поглядишь в предвосмотре, ты увидишь этот процесс наглядно. Видимо, придётся тебе делать AutoFit, а потом прибавлять к ширине каждой колонки что-то пропорциональное количеству символов. Или попробовать другие шрифты (например с Таймс Нью Роман у меня всё корректно работает).

А ещё для меня загадка, почему для этих ячеек у меня не запускается окно формата ячейки (Ктрл+1)...



Я тут создал на своем компе новый файл - все ок. Стал сравнивать свойства ActiveSheet.PageSetup один к одному (ну почти, там токо Zoom=False, а у меня =100, но это ничего не изменило ) - тут тупик.

На счет твоего предложение - все очень похоже, токо например с Таймс Нью Роман выходит примерно такая же фигня, а гораздо показательнее это менять размер шрифта, тогда все действительно входит в норму, ну или почти, помойму при Таймс Нью Роман 8, даже наблюдается обратный эффект, в окне впритык граница, в предварительном просмотре лишняя пустота справа появляется.


Мдаа, СтРАННЫЙ какой-то файл... т.е. дело даже не в нем, а копии программы Excel, который его создал. Как рассказывает пользователь, глюки начались с того, что в этом Excel'е открыли один пришедший xls файл для вычислений и в Excel'е сразу отключилось - автоматический пересчет (чем поверг пользователя в долгие часы раздумий: почему это растянутая на весь столбец формула не вычисляет значения, а показывает токо результат первой ячейки). Ну вот, а потом это Excel и стал рожать вот такие вот файлы. Моя-то прога из Access токо открывает Excel и в нем создает новый файл, соотв. со всеми умолч. настройками этого Excel...
Вообщем, надоело с ним бороться, файл сохраню как редкий экземпляр глюка, а Excel думаю сотрем и поставим заново - посмотрим что из этого выйдет.

267
16 января 2004 года
Cutty Sark
1.2K / / 17.10.2002
Цитата:
Originally posted by SergeySV


Мдаа, СтРАННЫЙ какой-то файл... т.е. дело даже не в нем, а копии программы Excel, который его создал. Как рассказывает пользователь, глюки начались с того, что в этом Excel'е открыли один пришедший xls файл для вычислений и в Excel'е сразу отключилось - автоматический пересчет (чем поверг пользователя в долгие часы раздумий: почему это растянутая на весь столбец формула не вычисляет значения, а показывает токо результат первой ячейки). Ну вот, а потом это Excel и стал рожать вот такие вот файлы.



ТАК ТЫ НАМ КОМПЫ ЗАВИРУСОВАЛ??? :devil: :devil: :devil:

258
16 января 2004 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by Cutty Sark


ТАК ТЫ НАМ КОМПЫ ЗАВИРУСОВАЛ??? :devil: :devil: :devil:



:D ага, найдена новая уязвимость в Excel

ну а если серьезно, то просто в файле где-то хранятся неправильно заданные параметры формата (хрен знает чего), а то копия Excel научилась рожать такие файлы... но вопросов конечно больше чем ответов X)-

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог