![]() |
|
Модераторы: mihanik |
![]()
|
|
| 790 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 25.5.2006 Репутация: нет Всего: нет |
Есть странноватая проблема. Дан алгоритм (подгоняет ширину вставляемого в Excel OLE-объекта под ширину ячейки, а высоту ячейки под высоту этого объекта): excCell := UnAssigned; excCell := excSheetMain.Range['A1:BZ500'].Find('&#TT_scheme#', lookin:=xlValues); if((VarCompareValue(excCell,UnAssigned)=vrEqual)and(Length(strVisSchemeTTName)>0)) then fnExcMakeDocument:=false else begin excCell.Select; //вставить объект s := outdir+strVisSchemeTTName+'.vsd'; excObj := excSheetMain.OLEObjects.Add(Filename:=s, Link:=False, DisplayAsIcon :=False); //подогнать ширину OLE-объекта к ширине ячейки excObj.ShapeRange.LockAspectRatio := msoTrue; e1 := excCell.Width; excObj.ShapeRange.Width := (e1/2.8125)*49.625*2.83066; //подогнать высоту ячейки к высоте OLE-объекта e1 := excObj.ShapeRange.Height; excCell.RowHeight := e1; end; делается это в цикле при сборке N > 1 документов. При сборке первого документа все хорошо. А на втором вылезает EOleException: Нельзя установить свойство RowHeight класса Range И к.з. что за дела! Настройки безопасности макросов не помогают. Хелп оффиса ясно пишет, что у Range есть сво-во RowHeight с возможностью изменения его значения. Помогите, пожалуйста, разобраться! Второй день сижу с этим глюком и никак! И самое обидное, что эта фигня запарывает весь проект в 3000 строк Добавлено @ 22:54 Совсем забыл главное Ошибка появляется при выполнении строки: excCell.RowHeight := e1; |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 26 Всего: 454 |
1) Используйте теги Код.
2) Указывайте язык, на котором программируете. 3) Поскольку (судя по синтаксису) это Дельфи - размещайте вопрос в соответствующем разделе. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Aloha |
|
|||
|
. ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 351 Регистрация: 14.5.2006 Репутация: 5 Всего: 165 |
790
Мне кажется, что все дело в величине параметра RowHeight Например, вот такой код работает: Worksheets("Лист1").Range("A1").RowHeight = 409 а такой Worksheets("Лист1").Range("A1").RowHeight = 410 выдает ошибку "Нельзя установить свойство RowHeight класса Range" |
|||
|
||||
| 790 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 25.5.2006 Репутация: нет Всего: нет |
К сожалению, дело не в этом. В первом документе (когда все работает) вставляется объект бОльшей высоты и ширины, чем при зборке второго документа (когда глючит). И оба объекта вписываются в предельную высоту ячейки в Excel = 409. P.S.
Вопрос в том разделе, т.к. касается глюков Excel VBA. |
|||
|
||||
| 790 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 25.5.2006 Репутация: нет Всего: нет |
Aloha, спасибо! Действительно дело было в высоте > 409. А я криво просто смотрел. Спасибо, проблема решена!
P.S. модератору: проьлема решена, тему можно закрывать |
|||
|
||||
![]()
|
| Правила форума "Программирование, связанное с MS Office" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще!
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Программирование, связанное с MS Office | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |