Имя: Пароль:
1C
 
1C VS Excel. Добавить именованную область...
0 FlashPoint
 
18.05.20
17:48
Всем привет.
Вопрос прост и в то же время не понятен, как через COMОбъект в документе программно добавить область Range, диапазон ячеек известен.

Excel.Sheets("obl").Range("R[2]C[1]:R["6"]C[1]").add();

выдает

Произошла исключительная ситуация (0x800a03ec).

Какой синтаксис тут?
1 Franchiser
 
гуру
18.05.20
17:53
Range("A3:B3").Select
ActiveWorkbook.Names.Add Name:="тест", RefersToR1C1:="=Лист1!R3C1:R3C2"
2 FlashPoint
 
18.05.20
17:53
(1) как этот скрипт на 1с перевести?
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();
4 FlashPoint
 
18.05.20
18:04
(3) Спасибо добрый человек! Спасибо!
5 FlashPoint
 
18.05.20
18:20
А как потом получить диапазон именованной ячейки?
6 Franchiser
 
гуру
18.05.20
21:19
Range попробуй.

Если выделить то:
Application.Goto("тест")
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
Но вопрос остается открытым, как же все таки, из наименованной области вытянуть диапазон ячеек.Хотя у меня подозрение, что в этой области свой диапазон, он не как у остальных ячеек на листе
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn