Сообщение об ошибке, что невозможно установить свойство Width объекта Range, хотя все объекты существуют
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Что возвращает свойство Column объекта Range
В справке написано: Returns the number of the first column in the first area in the specified.
Невозможно получить свойство LocationInTable класса Range
Добрый день! Столкнулся с таким моментом: при работе кода, код ошибок не выдает, но для чего он.
‘Нельзя установить свойство HorizontalAlignment класса Range’?
Привет, пытаюсь установить выравнивание в ячейке set EApp = CreateObject(‘Excel.Application’).
Ошибка ‘Нельзя установить свойство HorizontalAlignment класса Range’
Привет, пытаюсь установить выравнивание в ячейке set EApp = CreateObject(‘Excel.Application’).

Всем доброго дня, у меня такой вопрос. По незнанию создал функцию rAnge(), теперь при вызове.
Ошибка: «Нельзя установить свойство FormulaArray класса Range»
Здравствуйте! Прошу помочь разобраться с такой ошибкой: «Нельзя установить свойство FormulaArray.
Диапазону ячеек B2:B20 присвоить имя «Стоимость», используя свойство Cells объекта Range
1) Диапазону ячеек B2:B20 присвоить имя «Стоимость», используя свойство Cells объекта Range. 2).
Нельзя установить свойство columnwidth класса range парус
Профиль
Группа: Участник
Сообщений: 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 строк
Советчик
Профиль
Группа: Модератор
Сообщений: 20503
Регистрация: 8.4.2004
Где: Зеленоград
Репутация: 25
Всего: 453
.
Профиль
Группа: Участник Клуба
Сообщений: 351
Регистрация: 14.5.2006
Репутация: 5
Всего: 165
Профиль
Группа: Участник
Сообщений: 7
Регистрация: 25.5.2006
Репутация: нет
Всего: нет
Цитата(Aloha @ 27.5.2006, 15:47 ) |
| Мне кажется, что все дело в величине параметра RowHeight |
К сожалению, дело не в этом.
В первом документе (когда все работает) вставляется объект бОльшей высоты и ширины, чем при зборке второго документа (когда глючит). И оба объекта вписываются в предельную высоту ячейки в Excel = 409.
Вопрос в том разделе, т.к. касается глюков Excel VBA.
Профиль
Группа: Участник
Сообщений: 7
Регистрация: 25.5.2006
Репутация: нет
Всего: нет
Aloha, спасибо! Действительно дело было в высоте > 409. А я криво просто смотрел. Спасибо, проблема решена!
P.S. модератору: проьлема решена, тему можно закрывать



















| 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Если Вам понравилась атмосфера форума, заходите к нам чаще!
[ Время генерации скрипта: 0.1449 ] [ Использовано запросов: 21 ] [ GZIP включён ] Свойство ColumnWidthsУказывает ширину каждого столбца в поле со списком с несколькими столбцами. Синтаксисобъект. ColumnWidths [= String ] Синтаксис свойства ColumnWidths состоит из следующих частей: ПараметрыЧтобы отделить записи в столбцах, используйте точку с запятой (;) в качестве разделителя списка. В Windows это значение можно изменить, указав разделитель списка в разделе «Язык и региональные стандарты» панели управления Windows. Любые или все параметры свойства ColumnWidths могут оставаться пустыми. Пустой параметр можно создать, указав разделитель без предшествующего ему значения. Минимальная вычисляемая ширина столбца составляет 72 точки (2,54 см). Чтобы создать более узкий столбец, необходимо указать точную ширину. Если не указано другое, ширина столбца измеряется в точках. Чтобы указать другую единицу измерения, добавьте ее к значению. В следующих примерах ширина столбца указывается в нескольких единицах измерения, а также приводится описание различных способов размещения трех столбцов в поле со списком шириной 10,16 см.
ПримечанияВ поле со списком система отображает столбец, назначаемый свойством TextColumn в текстовой части элемента управления. См. такжеПоддержка и обратная связьЕсть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь. Microsoft Office Excel: Нельзя установить свойство HorizontalAlignment клас(1) а аутофит отрабатывает.. эксель же принципиально не связывает range и horizontal alignment Процедура ДеИнициализацияЭксель() Функция ИнициализацияЭксель() Процедура ВыбратьФайл() Процедура Сформировать() Вот так работает. Свойство Selection желательно не использовать, можешь захватить другие объекты кроме ячеек. (10) вообщето код не очень, и кстати если использовать мсскриптконтрол, то совсем не обязательно делать саб или функ. Да 🙂 так и есть. Только во всех источниках которые перерыл в инете везде «функ», как было выше сказано. Перепроверять не приходилось. 🙂 Строк=Т.КоличествоСтрок()+1; вот этот кусок работает. _ОкноЕхс=СоздатьОбъект(«Excel.Application»); Делай через лист всеже forum.clarionlife.netМесто общения программистов, форум разработчиков БД на Clarion [OLE] [Excel] Установка формата ячейкиМодератор: Дед Пахом Сообщение Гость » 31 Март 2004, 8:44 (С55EE(G); WinXP,98; ExcelXP,2000) OLE Automation Error ================================================== Вариант (ExcelXP) но здесь проблема с NumberFormat (см. Выше) (оставить в том виде что есть (текстовом) нельзя, так как на его основе не строятся ChartObjects) Посоветуйте, плиз: как надо правильно записывать в ячейки Excel дробные числа независимо от настроек системы Сообщение Гость » 01 Апрель 2004, 8:36 ГОСПОДА КЛАРИОНИСТЫ! Раз никто не отвечает, то либо лениво писать, либо некогда. Зачем сразу «плохо думать» От себя: Конкретно ручками писать работу с Excel через OLE не писал. Сообщение Гость » 01 Апрель 2004, 11:08 Я при выводе дробного числа в Excel делаю так Сообщение Гость » 01 Апрель 2004, 11:36 Да при чем тут это? Мне нужно только Я не понял, что следующий код не работает?: Если правильно понял то проблема десятичной точки тогда Liudvikas Jagucanskis Сообщение Гость » 01 Апрель 2004, 14:31 В случае, когда в качестве системного десятичного разделителя установлена запятая. ?OLE <'Selection.NumberFormat'>= ‘»0.00″‘ и наоборот: использовать «0,00», когда в системе разделителем является точка, тоже нельзя. Ошибки при работе нет, но вот данные в Excel искажаются. у Вас в настройках системы какой десятичный разделитель установлен? Я тут покопался малость и вот что выяснил: Ошибки при работе нет, но вот данные в Excel искажаются. Тогда почему в коде VBA (в макросе Excel) стоит именно «0.00». Подскажите: как определить какой символ используется в качестве десятичного разделителя? Я так понимаю это через API делать надо? — Сообщение Гость » 01 Апрель 2004, 18:44 Ну почему бы самому не написать 1 раз функцию, чтоб потом ее пользовать в каждом проекте? format_str = ‘»0’ & sys:get_decimal_divider & ’00″‘ — дык я с удовольствием это что за выражение. Ну что ребята, так сложно мс-дэ-эну почитать? где конкретно тебя должно интересовать 4 поле сверху О-о-о, сенкс, об этой функции не знал! — | ||||||||||||||||||

)


