7
790
Есть странноватая проблема.
Дан алгоритм (подгоняет ширину вставляемого в Excel OLE-объекта под ширину ячейки, а высоту ячейки под высоту этого объекта):
делается это в цикле при сборке N > 1 документов. При сборке первого документа все хорошо. А на втором вылезает EOleException: Нельзя установить свойство RowHeight класса Range
И к.з. что за дела! Настройки безопасности макросов не помогают. Хелп оффиса ясно пишет, что у Range есть сво-во RowHeight с возможностью изменения его значения.
Помогите, пожалуйста, разобраться! Второй день сижу с этим глюком и никак! И самое обидное, что эта фигня запарывает весь проект в 3000 строк
Дан алгоритм (подгоняет ширину вставляемого в 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 строк