Имя: Пароль:
1C
1С v8
ВПР из Excel, не могу назначить формулу
0 дущ1
 
09.04.22
19:59
Открываю книгу Excel.

    Excel = Новый COMОбъект("Excel.Application");  
    Книга = Excel.WorkBooks.Open(ИмяФайла);
    Excel.Visible = 0;
    Excel.ActiveWindow.DisplayWorkbookTabs = 1;
    Excel.ActiveWindow.TabRatio = 0.6;    
    
    Лист = Книга.WorkSheets(1);

Дальше определяю формулу для одной ячейки

    Лист.Cells(12, 6).FormulaR1C1 = "=VLOOKUP(R11C;R8C2:R10C3;2;TRUE)";

И вот тут оно падает. Главное SUM отлично работает, а VLOOKUP (ВПР если по нашему) при присвоении падает с ошибкой "Неверное имя".
Как ВПР то сделать?
1 Aleksey
 
09.04.22
20:53
Там же вроде разделитель запятая, а точка с запятой?
2 Aleksey
 
09.04.22
20:53
11C,R8C2:R10C3,2,TRUE
3 b_ru
 
09.04.22
21:54
Попробуй =VLOOKUP(R11C6;R8C2:R10C3;2;TRUE)  возможно в относительной адресации проблема
4 b_ru
 
09.04.22
22:02
Хотя нет. В русском офисе не работает. Зато Cells(12, 6).FormulaR1C1Local = "=ВПР(R11C;R8C2:R10C3;2;ИСТИНА)"  работает

Не в первый раз сталкиваюсь с тем, что в русской версии через VBA не работают английские формулы
5 дущ1
 
09.04.22
22:11
(2) лайк. Действительно запятые ему нужны. Самое тупое что в строке формул в самом экселе он ; ставит. Вот сволочь. Спасибо, а то я бьюсь уже час с этой чертовой формулой.
6 Aleksey
 
10.04.22
01:11
Есть у меня бредовая идея, что разделитель зависит от "языка" формулы.
Т.е. если мы пишем ВПР, т.е. на русском, то разделитель запиточка.
Если VLOOKUP - то запятая

По крайне мере такое мнение у меня сложилось глядя на примеры на сайте майкрософт
Описания ВПР https://support.microsoft.com/ru-ru/office/функция-впр-0bbc8083-26fe-4963-8ab8-93a18ad188a1
Описания LOOKUP https://support.microsoft.com/en-us/office/lookup-function-446d94af-663b-451d-8251-369d5e3864cb