|
|
|
|
#1 |
|
Moderator
|
А в Spreadsheet, по-моему, нотация R1C1 не поддерживается... А цель какая? Если нужно перебирать в цикле, то можно Range.Cells(i, j) использовать. А если формулу в диапазон вставить, то просто задаете формулу в нотации A1 для первой ячейки, т.е. как если бы только в одну ячейку вводили. При этом для других ячеек диапазона формула корректно настроится автоматически, например, Range("B1:B10").Formula = "=A1" даст формулу =А1 в ячейке B1 и формулу =A10 в ячейке B10.
|
|
|
|
|
#2 |
|
Участник
|
Проблема в том, что бы определить этот range, а он динамический т.е. на входе есть значения типа координат 1:1 до 100:100
|
|
|
|
|
#3 |
|
Moderator
|
Как-то так? Выделяется 10 первых строк:
X++: {
Form form = new Form();
Args args = new Args();
FormRun formRun;
FormActiveXControl ss;
COM worksheet;
COM range;
COM cells;
;
form.addDesign('Design');
args.object(form);
formRun = classFactory.formRunClass(args);
formRun.init();
formRun.design().caption('Табличный процессор');
ss = formRun.design().addControl(FormControlType::ActiveX, 'Spreadsheet');
ss.className('{0002E541-0000-0000-C000-000000000046}'); // Microsoft Office Spreadsheet 10.0
//ss.className('{0002E559-0000-0000-C000-000000000046}'); // Microsoft Office Spreadsheet 11.0
ss.heightMode(FormHeight::ColumnHeight);
ss.widthMode(FormWidth::ColumnWidth);
range = ss.Range("A1");
worksheet = range.Parent();
cells = worksheet.Cells();
range = ss.Range(cells.Item(1,1),cells.Item(10,10)); // ЭТО???
range = range.EntireRow();
box::info(range.Address(true,true,-4150)); // R1:R10
range.Select();
formRun.run();
formRun.wait();
} |
|
|
|
| За это сообщение автора поблагодарили: Serg (1). | |
|
|
#4 |
|
Участник
|
ок, все помогло.
|
|
|
|
|
Похожие темы
|
||||
| Тема | Ответов | |||
| aEremenko: Как обнаружить какой пользователь загружает процессор AOS? | 4 | |||
| Табличный Mapping - список используеиых таблиц | 6 | |||
|