загадка про Rowheight от Excel

Тема в разделе "Другие", создана пользователем 790, 26 май 2006.

Статус темы:
Закрыта.
  1. 790

    790 Гость

    Есть странноватая проблема.
    Дан алгоритм (подгоняет ширину вставляемого в Excel OLE-объекта под ширину ячейки, а высоту ячейки под высоту этого объекта):

    Код (Text):
    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 строк
     
  2. 790

    790 Гость

    Проблема решена: нельзя ставить RowHeight > 409.
    Модератору: тему можно закрывать
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей