Вход | Регистрация
 

1C VS Excel. Добавить именованную область...

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

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

выдает

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

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

Если выделить то:
Application.Goto("тест")
   FlashPoint
 
7 - 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, я думаю, что как то можно через область получить ее диапазон ячеек, но мне кажется, что проще область не объявлять, так оптимальнее будет )
   FlashPoint
 
8 - 18.05.20 - 22:27
Но вопрос остается открытым, как же все таки, из наименованной области вытянуть диапазон ячеек.Хотя у меня подозрение, что в этой области свой диапазон, он не как у остальных ячеек на листе

Список тем форума
Рекламное место пустует  Рекламное место пустует
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.