Страницы: 1
RSS
Не срабатывает переключение между рабочими книгами
 
Добрый, может кто уже сталкивался с подобной проблемой.
Есть макрос который переносит данные из другой книги/листа на активыный лист.
При этом используются диалоговые окна InputBox. Может это важно.

Как это работает.
1.
Код
Set MyWorkbook= ActiveWorkbook : Set MySheet = ActiveSheet
2. На активно листе в InputBox юзер вводит адрес ачейки-получателя
3. Юзер переключается на другой лист в другой книге и в InputBox юзер вводит адрес ачейки-донора
4. После закрытия диалогового окна начинается перенос данных. При этом активной остается книга-донор на которую руками переключился юзер.
5. После переноса данных стоит команда
Код
MyWorkbook.Activate
MySheet.Activate

Ошибку не выдает, но и на изначальный лист с которого юзер начал работу, не переключает.
Вариации с
Код
MyWorkbook.Select или Application.Window(MyWorkbook.Name).Activate

не помогли

П/С в пределах одной рабочей книги переключение листов работает.
Работает также если макросом по запросу юзера другая рабочая книга (если нужный файл не открыт) сначала открывается. Потом юзер в ней выбирает ячейку. Затем макрос отрабатывает и переключает на изначальный лист.
Изменено: Troglodit - 03.10.2017 11:18:52
 
Попробовал все работает. Прогоните макрос через F8 и посмотрите в окне Locals или Watch что присваивается переменным MyWorkbook и MySheet.
м.б. не та книга или лист? А вообще лучше файл(ы) пример выложите посмотреть, что там да как!
"Все гениальное просто, а все простое гениально!!!"
 
Вложил файл с примером
Изменено: Troglodit - 03.10.2017 14:49:10
 
А вы уверены что при активном окне InputBox, можно переключаться между книгами, у меня  вышло только между листами. В итоге код вернул меня на лист1 и вставил данные! Все сработало как нужно. В первый  InputBox внес получателя, во второй донора, исходя из логики написанного кода.
Код
Set r1 = Application.InputBox("Выберите мышкой начальную ячейку", Type:=8)
Set r2 = Application.InputBox("Выберите мышкой конечную ячейку", Type:=8)
"Все гениальное просто, а все простое гениально!!!"
 
Цитата
Nordheim написал:
вы уверены что при активном окне InputBox, можно переключаться между книгами, у меня  вышло только между листами.
Да, я переключаюсь и между книгами и между листами.
Между листами все работает как я и писал в П/С. А вот между книгами - нет.
 
Порядок действий у вас какой? в первое окно вводите диапазон из книги получателя, во второе из книги донора? Если так , то  у меня все работает в Excel-2016
"Все гениальное просто, а все простое гениально!!!"
 
У меня Эксель - 2013.
Да имеено так. После того как нажал ок. во втором ИнпутБоксе. Срабатывает макрос. И я остаюсь на листе доноре. Иногда на время работы макроса окно листа реципиенат становится активным, но потом все равно возвращает на лист-донор.

Есть еще один глюк. В рамках одной рабочей книги переключение листов срабатывает. Но Глючно.
То есть открывает нужный лист, но при попытке что-то внести в ячееку - ничего не происходит. Она остается пуста и ошибки не выдает. Но если переключится на изначьный лист то увидим что знаечние ввелось в него :) в ячеку стаким же адресом. Помогает переключение мышкой по вкладкам листов :)
 
Приветствую всех!
Цитата
Troglodit написал:
Есть еще один глюк
Столкнулась с такой же проблемой  :cry:
Может, кто-нибудь знает, как всё же обойти этот глюк макросом, а не переключением вручную между листами?
Касается только Excel 2013, в 2010-м и 2016-м работает нормально.
Файл для поиграться прикладываю
 
Лен, привет
Напиши последней в макросе ShowForm строку shFactProd.Activate. А в FactProduct ее можно убрать
Вот так
Код
Public Sub ShowForm()
    Set SelectCell = Application.InputBox("Выберите ячейку", Type:=8)
    SelectArt.Show
    shFactProd.Activate
End Sub

Причину не знаю, нашел только как победить. Возможно, или не успевает что-то сделать, или путается - форма была открыта на одном листе, ввод на втором. Не должен, конечно, но в 2013 я много уже глюков всяких необъяснимых наблюдал. В основном с графикой
Изменено: _Boroda_ - 21.11.2017 16:13:27
Скажи мне, кудесник, любимец ба’гов...
 
Спасибо! Проверила на реальном файле, всё работает. А то я уже отчаялась  :)
Страницы: 1
Наверх