нельзя установить свойство locked класса range

Нельзя установить свойство locked класса range

1С 8 Как защитить определенные ячейки Excel

agkorepanov Дата: Четверг, 11.08.2016, 11:18 | Сообщение # 1

ЛистДанных.UnProtect(«123»); //делаем шаблон незащищенным

ВсегоКолонок = ЛистДанных.Cells(1,1).SpecialCells(11).Column;
ВсегоСтрок = ЛистДанных.Cells(1,1).SpecialCells(11).Row;

для Строка = 1 по ВсегоСтрок цикл
для Колонка = 1 по ВсегоКолонок цикл
Ячейка = ЛистДанных.Cells(Строка, Колонка);
Если ПустаяСтрока(Ячейка.Value) Тогда

КонецЕсли;
КонецЦикла;
КонецЦикла;

Если не использовать метод MergeArea и написать просто (ЛистДанных.Cells(Строка, Колонка).Locked=Ложь) или (ЛистДанных.Cells(Строка, Колонка).Locked=0) то выходит ошибка:

>: Ошибка при установке значения атрибута контекста (Locked)
ЛистДанных.Cells(Строка, Колонка).Locked=Ложь;
по причине:
Произошла исключительная ситуация (Microsoft Excel): Нельзя установить свойство Locked класса Range

Источник

Нельзя установить свойство locked класса range

Помогите пожалуйста!
Есть код макроса, который находится на листе, а не в модуле.
Требуется определенные ячейки защитить от редактирования.
[vba]

200?’200px’:»+(this.scrollHeight+5)+’px’);»> ActiveWorkbook.Activate
Sheets(«Entrance»).Activate
Columns(«A:L»).Select

Selection.Locked = True
Sheets(«Entrance»).Activate

Получаю ошибку «Run-time error ‘1004’ Метод Select из класса Range завершен неверно» и выделяется строка:
[vba]

Как можно исправить это?
Заранее спасибо!

Помогите пожалуйста!
Есть код макроса, который находится на листе, а не в модуле.
Требуется определенные ячейки защитить от редактирования.
[vba]

200?’200px’:»+(this.scrollHeight+5)+’px’);»> ActiveWorkbook.Activate
Sheets(«Entrance»).Activate
Columns(«A:L»).Select

Selection.Locked = True
Sheets(«Entrance»).Activate

Получаю ошибку «Run-time error ‘1004’ Метод Select из класса Range завершен неверно» и выделяется строка:
[vba]

Как можно исправить это?
Заранее спасибо! Red_Sloth

Помогите пожалуйста!
Есть код макроса, который находится на листе, а не в модуле.
Требуется определенные ячейки защитить от редактирования.
[vba]

200?’200px’:»+(this.scrollHeight+5)+’px’);»> ActiveWorkbook.Activate
Sheets(«Entrance»).Activate
Columns(«A:L»).Select

Selection.Locked = True
Sheets(«Entrance»).Activate

Получаю ошибку «Run-time error ‘1004’ Метод Select из класса Range завершен неверно» и выделяется строка:
[vba]

Источник

Использование свойств Enabled и Locked

Использование свойств Enabled и Locked

Два свойства Enabled и Locked управляют тем, будут ли элементы управления или вся форма доступны пользователю. Очевидно, вы захотите получить полный доступ к элементам управления, находящимся в форме. В противном случае возникает вопрос, зачем же они тогда находятся в форме? Однако иногда элементы управления для вас недоступны. Очень часто элементы управления находятся в форме, однако в данный момент они окрашены в серый цвет. Это говорит о том, что использовать сейчас их нельзя. Например, если в текстовом процессоре не выделен какой-нибудь фрагмент текста, команда Cut (Вырезать) не доступна, так как вырезать нечего.

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

Когда свойство Enabled равно True, элемент управления появляется обычным образом и может находиться в фокусе. Когда свойство Enabled равно False, Windows отображает на экране неактивную (серую) версию этого элемента управления, который не может находиться в фокусе (рис. 10.10).

Рис. 10.10. В этом диалоговом окне есть активные и неактивные переключатели и кнопки, а также неактивное текстовое поле

Свойство Locked определяет, что выполняет элемент управления. Если свойство Locked равно True, можно щелкать на элементе управления, использовать любые комбинации клавиш, бросать в него камнями, но элемент управления ничего не будет делать (обратитесь к разделу «Назначение быстрых клавиш» дальше в настоящей главе). Однако если свойство Enabled равно True, элемент управления будет находиться в фокусе и нормально выглядеть.

Читайте также

Редактирование свойств подключения

Редактирование свойств подключения Иногда в процессе работы возникает необходимость изменить те или иные параметры созданного ранее подключения к Интернету. Характерные примеры – изменение телефонного номера, через который осуществляется подключение, учетных

Просмотр свойств оборудования

Использование свойств слоев

Использование свойств слоев Имеется возможность присваивать свойства как слоям, так и непосредственно объектам рисунка. При построении нового объекта ему автоматически назначаются цвет, тип и вес линии, а также стиль печати ByLayer. Если свойство объекта имеет специальное

Использование окна свойств.

Использование окна свойств. Окно Properties (Окно свойств) позволяет просмотреть и. если нужно, изменить свойства любого объекта (проекта, модуля, формы или элемента управления), который в окне редактора Visual Basic в данный момент активен. Если взглянуть на рис. 5.17, то можно увидеть,

Изменение установок свойств

Изменение установок свойств В зависимости от свойства, установки свойств можно менять одним из следующих трех способов:* просто печатая новое значение;* выбирая новое значение из раскрывающегося списка;* выбирая новое значение в диалоговом окне.Некоторые свойства

Использование стандартных свойств элемента управления

Использование свойств Cells для определения диапазона

Использование свойств Cells для определения диапазона При использовании без координат свойство Cells объекта Worksheets указывает на диапазон, включающий все ячейки данного рабочего листа. По аналогии, свойства Cells объекта Application ( Application. Cells ) ссылаются на все ячейки листа,

Создание процедур свойств

Палитра свойств

Палитра свойств Как уже говорилось, объекты чертежа имеют три свойства: цвет, тип и толщину линий. По умолчанию данные свойства присваиваются объекту в зависимости от того, на каком слое он находится. Однако каждому объекту можно назначить и индивидуальные свойства.Чтобы

Использование свойств слоев

Использование свойств слоев Имеется возможность присваивать свойства как слоям, так и непосредственно объектам рисунка. При построении нового объекта ему автоматически назначаются цвет, тип и вес линии, а также стиль печати ByLayer. Если свойство объекта имеет специальное

Использование свойств слоев

Использование свойств слоев Имеется возможность присваивать свойства как слоям, так и непосредственно объектам рисунка. При построении нового объекта ему автоматически назначаются цвет, тип и вес линии, а также стиль печати ByLayer. Если свойство объекта имеет специальное

Копирование свойств объектов

Палитра свойств объектов

Палитра свойств объектов Палитра свойств объектов PROPERTIES, показанная на рис. 5.15, – это единый инструмент, управляющий практически всеми свойствами объектов рисунка. На палитре собрано около 40 диалоговых окон и команд, которые были разрознены в более ранних версиях AutoCAD.

Палитра свойств

Палитра свойств Как уже говорилось, объекты чертежа имеют три свойства: цвет, тип и толщина линий. По умолчанию данные свойства присваиваются объекту в зависимости от того, на каком слое он находится. Однако каждому объекту можно назначить и индивидуальные свойства.Чтобы

Источник

Error 1004 when setting Range.Locked

I get the catch-all runtime error 1004, «unable to set the Locked property of the Range class» when, well, trying to set the Locked property of a Range object. The code looks like this:

When I set a breakpoint on the line and try to query the value of that_goddamn_range.Locked from the Immediate window, this works without problem, but setting it fails.

What could possibly be going wrong?

5 Answers 5

Here’s a complete explanation:

Typically, there are two causes of this error: trying to change a cell’s Locked property on a protected sheet and/or trying to change the Locked property of a single cell in a merged range.

In the first case, you can either unlock the sheet or set UserInterfaceOnly protection for it, which is highly recommended since you then don’t have to mess with repeatedly unlocking/locking it.

With regard to merged cells, you can’t lock a single cell that is part of a merged range but there are reasonable options:

If you are using cell-address notation to reference the cell/range,

then reference the whole merged range instead:

Range(«A1:A3»).Locked = True ‘where «A1:A3» is the entire merged range

If you are using a named range for a set of merged cells, by default it will be defined to reference the first of the merged cells only. You can either edit its definition to include the entire merged range or use its MergeArea property to reference its associated merged range:

But note that you can’t do both since the MergeArea property is, apparently, undefined for a range that is not a strict subset of a larger merged area!

Of course, you can always unmerge the merged range before setting the Locked property of an included cell and then re-merge it afterward, but I have never seen a situation in which one of the above two solutions wasn’t sufficient (and much cleaner).

Источник

forum.clarionlife.net

Место общения программистов, форум разработчиков БД на Clarion

[OLE] [Excel] Установка формата ячейки

Модератор: Дед Пахом

Сообщение Гость » 31 Март 2004, 8:44

(С55EE(G); WinXP,98; ExcelXP,2000)

OLE Automation Error
«Нельзя установить свойство NumberFormat класса Range»

==================================================
3. Я хочу записать в ячейку дробное число
?OLE <'Cells(' & i & ',' & j+1 & ').Value'>= YVol[m#,j]
как обеспечить распознавание числа ^^^^^^^^
как дробного числа с DecimalSeparator = «.» и автоматического приведение его к DecimalSeparator, установленному в системе.
Т.е. чтобы из Clarion в Excel число записывалось именно как число и именно с тем DecimalSeparator, который установлен в системе

Вариант (ExcelXP)
?OLE <'Application.DecimalSeparator'>= ‘».»‘
?OLE <'Application.UseSystemSeparators'>= FALSE
Не работает под Excel2000 (ну нет там таких свойств)
Пробую обойти это так:

но здесь проблема с NumberFormat (см. Выше) (оставить в том виде что есть (текстовом) нельзя, так как на его основе не строятся ChartObjects)

Посоветуйте, плиз: как надо правильно записывать в ячейки Excel дробные числа независимо от настроек системы

Сообщение Гость » 01 Апрель 2004, 8:36

ГОСПОДА КЛАРИОНИСТЫ!
Если не поможете, начну о вас плохо думать.

Раз никто не отвечает, то либо лениво писать, либо некогда. Зачем сразу «плохо думать»

От себя: Конкретно ручками писать работу с Excel через OLE не писал.
Сразу стал писать используя OfficeTemplate. Там это без проблем, например:

Сообщение Гость » 01 Апрель 2004, 11:08

Я при выводе дробного числа в Excel делаю так

Сообщение Гость » 01 Апрель 2004, 11:36

Да при чем тут это?
Мне не нужно менять установки в системе.

Мне нужно только
1. Правильно вывести число с десятичной точкой в Excel
2. Задать числовой формат ячейки в Excel

Я не понял, что следующий код не работает?:

Если правильно понял то проблема десятичной точки тогда
Format(FSN:SNMBR,@n5`2)
Меняет точку на запятую

Liudvikas Jagucanskis
Написал: ClaList(2)

Сообщение Гость » 01 Апрель 2004, 14:31

В случае, когда в качестве системного десятичного разделителя установлена запятая.
НЕ работает вот что

?OLE <'Selection.NumberFormat'>= ‘»0.00″‘
выдает ошибку:
OLE Automation Error
«Нельзя установить свойство NumberFormat класса Range»

и наоборот: использовать «0,00», когда в системе разделителем является точка, тоже нельзя. Ошибки при работе нет, но вот данные в Excel искажаются.

у Вас в настройках системы какой десятичный разделитель установлен?
(и еще если можно: какой Excel, какая Windows?)

Я тут покопался малость и вот что выяснил:

Ошибки при работе нет, но вот данные в Excel искажаются.

Тогда почему в коде VBA (в макросе Excel) стоит именно «0.00».

Подскажите: как определить какой символ используется в качестве десятичного разделителя? Я так понимаю это через API делать надо?
Приведите пример вызова функции API в Clarion.


Best regards,
Ivan
Написал: ClaList(2)

Сообщение Гость » 01 Апрель 2004, 18:44

Ну почему бы самому не написать 1 раз функцию, чтоб потом ее пользовать в каждом проекте?

format_str = ‘»0’ & sys:get_decimal_divider & ’00″‘


Best regards,
Maxim Yemelyanov,
Enigma Soft Company
phone: +380 572 177977
WEB: http://enigmasoft.com.ua
e-mail: clalist@enigmasoft.com.ua
ICQ: 12253836

дык я с удовольствием
знал бы я как к ней подступиться

это что за выражение.
это и имеется ввиду под функцией?
а почему «sys:» вначале?

Ну что ребята, так сложно мс-дэ-эну почитать?

где конкретно тебя должно интересовать 4 поле сверху

О-о-о, сенкс, об этой функции не знал!


Best regards,
Maxim Yemelyanov
Написал: ClaList(2)

Источник

Читайте также:  мантры слушать очищающая карму и пространство
Портал про кино и шоу-биз