0
FlashPoint
18.05.20
✎
17:48
|
Всем привет.
Вопрос прост и в то же время не понятен, как через COMОбъект в документе программно добавить область Range, диапазон ячеек известен.
Excel.Sheets("obl").Range("R[2]C[1]:R["6"]C[1]").add();
выдает
Произошла исключительная ситуация (0x800a03ec).
Какой синтаксис тут?
|
|
3
Franchiser
гуру
18.05.20
✎
17:55
|
Ну погуглить можно:
ЭксельОбъект = Новый COMОбъект("Excel.Application");
ЭксельОбъект.DisplayAlerts = 0;
Книга1 = ЭксельОбъект.WorkBooks.Add("D:\book.xls");
Книга1.Names.Add("name1","='Лист2'!R1C3:R6C3");
Книга1.SaveAs("D:\book.xls");
ЭксельОбъект.Quit();
|
|
7
FlashPoint
18.05.20
✎
22:21
|
(6) Нет, выделять не надо, мне надо получить диапазон выбранных ячеек, что бы подставить его в создаваемый выпадающий список как параметр:
Excel.Names.Add("Categories", "=Лист2!R2C1:R" + Строка(ТекущаяСтрока-1) + "C1");
Область_Categories = "" + "=Лист2!R2C1:R" + Строка(ТекущаяСтрока-1) + "C1";
Excel.Sheets(1).Cells(ТекущаяСтрока,21).Validation.Add(3,1,1, Область_Categories);
//Excel.Sheets(1).Cells(ТекущаяСтрока,21).Validation.Add(3,1,1,"=Лист2!C[-20]");
Excel.Sheets(1).Cells(ТекущаяСтрока,21).Validation.IgnoreBlank=1;
Excel.Sheets(1).Cells(ТекущаяСтрока,21).Validation.InCellDropdown=1;
Excel.Sheets(1).Cells(ТекущаяСтрока,21).Validation.ShowInput=0;
Excel.Sheets(1).Cells(ТекущаяСтрока,21).Validation.ShowError=1;
И что бы не использовать переменную Область_Categories, я думаю, что как то можно через область получить ее диапазон ячеек, но мне кажется, что проще область не объявлять, так оптимальнее будет )
|
|
8
FlashPoint
18.05.20
✎
22:27
|
Но вопрос остается открытым, как же все таки, из наименованной области вытянуть диапазон ячеек.Хотя у меня подозрение, что в этой области свой диапазон, он не как у остальных ячеек на листе
|
|