Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: VBA команда Select - почему не работает
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование управляемых форм 1С 8.2
Gigi
Всем привет!
Уважаемые форумчане ... никто не подскажет почему не получается использовать VBA команду:
Sheets(2).Select

в 1С.
Ну разумеется подключенив ком объект..
Excel = Новый COMОбъект("Excel.Application");
Книга = Excel.WorkBooks.Add();
Excel.Visible = 1;
Лист = Книга.WorkSheets(2);
// и тут почему то ругается... никак не хочет.. на все варианты ревет... что ей не нравиться не пойму..
// Excel.Worksheets(Лист).Activate;
// Excel.Worksheets(Лист).Select;
// Excel.Worksheets(Лист.Name).Activate;
//Лист.Activate;
//Лист.Select;
// Тогда как вот эта команда без проблем срабатывает:
Лист.Range("A4").Formula = "=A1";

Подскажите ... подкорректируйте пожалуйста .. что не устаревает платформу.

Буду признателен! Очень Очень! smile.gifsmile.gif
Bernet
Gigi @ Сегодня, 16:00 необходимо зарегистрироваться для просмотра ссылки ,
Не уверен, но моя 5-я точка подсказывает, что
Цитата
Select
и
Цитата
Activate
должны быть функциями а не свойствами, т.е. вызывать их надо через ()
Excel = Новый COMОбъект("Excel.Application");
Книга = Excel.WorkBooks.Add();
Excel.Visible = 1;
Лист = Книга.WorkSheets(2);
Excel.Worksheets(Лист).Activate();
Excel.Worksheets(Лист).Select();
Excel.Worksheets(Лист.Name).Activate();
Лист.Activate();
Лист.Select();


P.S. не проверял
daveal
Лист = Книга.WorkSheets(2);
Лист.Activate();

Ну и плюс по хорошему проверить есть ли лист. 2016 Excel только один создает по умолчанию
Gigi
Bernet @ Сегодня, 16:18 необходимо зарегистрироваться для просмотра ссылки ,
Да пардон ...
Выше описанный код не рабочий... вот этот рабочий .. проверенный
&НаКлиенте
Процедура Run_ApplicExcel_4()
Excel = Новый COMОбъект("Excel.Application");
Книга = Excel.WorkBooks.Add();
Excel.Visible = 1;
Excel.ActiveWindow.DisplayWorkbookTabs = 1;
Excel.ActiveWindow.TabRatio = 0.6;
Лист = Книга.WorkSheets(2);
// Заработало! ПРОБЛЕМА РЕШЕНА!
Лист.Select();
Лист.Range("A4").Formula = "=A1";
КонецПроцедуры

Цитата(Bernet @ 05.09.17, 16:18) необходимо зарегистрироваться для просмотра ссылки
т.е. вызывать их надо через ()

Да точно ... так и есть .. ну в 1С по кр.мере
Но вообще в самом VBА это метод .. по крайней мере так катит..
Ладно!
Спасибо!

Цитата(daveal @ 05.09.17, 16:26) необходимо зарегистрироваться для просмотра ссылки
Ну и плюс по хорошему проверить есть ли лист. 2016 Excel только один создает по умолчанию

Ну да ... само собой разумеется!
Спасибо!
Gigi
Gigi @ Сегодня, 16:44 необходимо зарегистрироваться для просмотра ссылки ,
Да еще пардон ... столкнулся опять с проблемой.
Правда не сильно важной .. но все таки.
Дело в том, что в указанном варианте кода окно приложения эксель выходит не на передний план.
Она всегда оказывается под окном 1С предприятие. А нужно над ... т.е. на первый план.
Поэтому ...
&НаКлиенте
Процедура Run_ApplicExcel_4()
Excel = Новый COMОбъект("Excel.Application");
Книга = Excel.WorkBooks.Add();
Excel.Visible = 1;
Excel.ActiveWindow.DisplayWorkbookTabs = 1;
Excel.ActiveWindow.TabRatio = 0.6;
// Это из VBA ... не помогает ... И ТУТ НЕ ПОЛУЧАЕТСЯ ВЫВЕСТИ ОКНО НА ПЕРЕДНИЙ ПЛАН!
//Excel.WindowState = xlMinimized();
//Excel.Activate();
КонецПроцедуры

Конечно это ерунда ... пустяк, но все таки..
Поэтому в рамках начатой темы о VBA уже другой вопрос ... и другой крик о помощи smile.gifsmile.gif

Буду признателен!
Vofka
Gigi, с выводом окна на передний план может необходимо зарегистрироваться для просмотра ссылки поможет.
daveal
Можно свернуть/развернуть:
Excel.Application.WindowState = 2;
Excel.Application.WindowState = 1;
Gigi
Цитата(daveal @ 06.09.17, 8:54) необходимо зарегистрироваться для просмотра ссылки
Excel.Application.WindowState = 2;
Excel.Application.WindowState = 1;

УМНИЦА smile.gifsmile.gif
Вот удивляюсь как сам не догнал, что можно таким образом.
Без лишнего геморроя со всякими "SetForegroundWindow", "Notifier" и т.д.
Просто окно свернул и развернул .. и все.
Большое спасибо!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.