Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/88: Рейтинг темы: голосов - 88, средняя оценка - 4.53
 Аватар для sku144
195 / 17 / 2
Регистрация: 15.01.2015
Сообщений: 190

Не нажимаются кнопки в экселе

21.08.2015, 01:36. Показов 18351. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
По какой-то непонятной причине у меня на домашнем компе перестали нажиматься кнопки во время работы макроса.
DoEvents позволяет мне выделять ячейки, сворачивать и разворачивать приложение, но нажимать на какие бы то ни было кнопки на ленте нет возможности. На скрине видно две добавленных мною кнопки. Чтобы запустить макрос, надо нажать на кнопку Resume 2 раза - первое нажатие как будто бы впустую, хотя, судя по всему, происходит что-то типа передачи фокуса ленте. Второе нажатие запускает макрос. Во время работы макроса кнопка Resume анимирована как нажатая, и любая попытка нажать на эти и прочие кнопки на ленте безуспешны. Заметил, что вызов контекстного меню при правом щелчке по ячейкам возвращает доступ к кнопкам, давая мне возможность нажимать их.

Вчера это не воспроизводилось. На рабочей машине тоже все работает прекрасно. У других людей тоже не наблюдается. Видимо что-то пошло не так у меня. Пробовал перезагрузить свою машину и даже переустанавливал эксель. Видимо какая-то ерунда прописалась в реестре? Как вы думаете, почему так может быть?

Вчера вечером очень много экспериментировал с добавлением элементов на ribbon, и, видимо, доигрался. Хотя как это могло заафектить excel app, ума не приложу - правке подвергались лишь экселевские файлы.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.08.2015, 01:36
Ответы с готовыми решениями:

Не нажимаются кнопки
Добрый вечер, Уважаемый форумчане! Прошу помощи... В последнее время открываю рабочую БД, и такая проблема... Кнопочки все нажимаются,...

Не нажимаются некоторые кнопки.
Добрый день. С недавних пор перестали нажиматься некоторые кнопки, например, левый столбец в опере, где закладки и прочее, кнопка...

Не нажимаются кнопки WebBrowser
Ни чего понять немогу, захожу на сайт жму по картинкам, по ссылкам и ни куда ничего не переходит, кнопки ненажимаются! Вобще ни какие...

11
 Аватар для sku144
195 / 17 / 2
Регистрация: 15.01.2015
Сообщений: 190
21.08.2015, 01:39  [ТС]
вот скрин при работающем макросе - кнопка Resume анимирована как нажатая
Миниатюры
Не нажимаются кнопки в экселе  
0
 Аватар для sku144
195 / 17 / 2
Регистрация: 15.01.2015
Сообщений: 190
29.08.2015, 22:44  [ТС]
Проблема в экселе (Excel 2007, Application.Version = 12). В других версиях не воспроизводится.
0
 Аватар для sku144
195 / 17 / 2
Регистрация: 15.01.2015
Сообщений: 190
06.09.2015, 21:23  [ТС]
Апну тему, так как проблема все еще актуальна. Еще раз расскажу в чем беда, но уже конкретней и с примером в аттаче.

Есть макрос, в котором на ленту добавлены две пользовательские кнопки. Они управляют макросом - запустить и остановить. Кроме того, макрос прописан в автозапуске документа, причем с задержкой в одну секунду (если не сделать задержку, и запускать сразу по открытии экселя, кнопки не будут созданы!). Макрос сам по себе очень простой - бесконечные десятисекундные циклы с выводом на статусбар секунд до начала следующего цикла.
В теле цикла DoEvents перемежается со Sleep по 100мс, чтобы пользователь во время работы этих бесконечных циклов мог продолжать работать в экселе. А теперь о проблеме и поведении макроса

- Когда макрос стартует при открытии экселя, пользователю доступна лента (ribbon), и, соответственно, кнопки управления макросом на этой ленте.
- Когда макрос гоняется, при нажатии на кнопку остановки макроса пользовательской кнопкой остановки, макрос останавливается и лента остается доступной.
- Когда макрос остановлен, и его запускать но нажатию F5 в редакторе VBE, макрос стартует, и кнопки управления макросом вместе с лентой будут доступны.
- И последний вариант, проблемный, когда макрос остановлен, и пользователь запускает его через пользовательскую кнопку запуска макроса с ленты, кнопки и сама лента зависают. Кнопка запуска анимирована как нажатая, и более ни кнопки управления макросом, ни сама лента более недоступны пользователю до остановки макроса (синий квадраик stop в VBE или ctrl+break).

Заметил, что когда лента подвисает, если щелкнуть правой кнопкой мыши по ячейкам, кнопка перестает быть анимирована как нажатая, но лента по-прежнему будет недоступна до окончания работы макроса.

Никак не могу понять в чем проблема.
Воспроизводится на машине с win7-32, excel 2007 (Application.Version = 12)
Воспроизводится на машине с win7-64, excel 2007 (Application.Version = 12) та же самая версия экселя
Не воспроизводится на машине с excel 2010 win7-64
Не воспроизводится на машине с excel 2013 win7-64

Судя по всему проблема не в макросе и кнопках, а в багах 2007 экселя?
Пробовал переустановить эксель (на тот же самый) и даже операционку (win7-32) на ту же самую - проблема не ушла.
Вложения
Тип файла: 7z Question.7z (23.3 Кб, 5 просмотров)
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
07.09.2015, 21:03
В Sleep скорее всего и есть проблема. Замените процедуру ожидания на Application.OnTime
Соответственно и зависимую от паузы логику придется немного подправить.
2
 Аватар для sku144
195 / 17 / 2
Регистрация: 15.01.2015
Сообщений: 190
08.09.2015, 01:54  [ТС]
Спасибо, попробую переделать на OnTime. О результатах расскажу.
0
 Аватар для sku144
195 / 17 / 2
Регистрация: 15.01.2015
Сообщений: 190
26.09.2015, 20:56  [ТС]
Dragokas, Казанский наконец-то нашел время покопаться с кодом.
Нет, проблема не в sleep, кнопки всё равно залипают. Я полностью выпилил слипы из макроса, заменив их на работу с таймером.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Sub MyMacro()
SLP(5000)
MsgBox "5s left"
ENd Sub
 
Function SLP(slep)
    x = Timer
    While slep / 1000 > Timer - x
        DoEvents
    Wend
End Function
Но предложение с Application.OnTime натолкнуло меня на мысль сделать отсроченный старт макроса по нажатию на кнопку. Поскольку в изначальной версии по нажатии на кнопку макрос начинал бегать и залипшая кнопка не отвечала, то я подумал, что если отсрочить запуск макроса, а значит что после нажатия на кнопку макрос начнет работать не сразу, приложение вернет кнопку в начальное ненажатое положение, потому что теперь у него нет первоприоритетной задачи запустить макрос, жертвуя состоянием кнопки, поэтому кнопка должна 'отлипнуть'. Так и произошло - отложенный старт решает мою проблему.


В общем на кнопку в таком случае просто надо вешать не немедленный вызов
Visual Basic
1
2
3
Sub StartFL(ByVal Control As IRibbonControl)
    Run "MyMacro"
End Sub
а отложенный (в моем случае отсрочка на 1 секунду), чтобы нажатая кнопка "отжалась"
Visual Basic
1
2
3
Sub StartFL(ByVal Control As IRibbonControl)
    Application.OnTime Now + TimeValue("00:00:01"), "MyMacro"
End Sub
---------

Кстати, пока ковырялся с редактировнаием своего поста, нашел баг на форуме, позволяющий в некоторых случаях редактировать свои сообщения, написанные более чем 5 минут назад.
Когда ты написал сообщение, и по истечении 5 минут пытаешься его редактировать, вылезает сообщение, что прошло 5 минут, и редактировать его уже нельзя.
Для того, чтобы его отредактирвать, достаточно просто убедиться, что ниже твоего сообщения никто ничего не писал, пишешь новый комментарий, который присовокупляется к твоему предыдущему сообщению, и теперь твой первый пост имеет lastUpdate = now, и вполне себе подлежит редактированию

Добавлено через 17 минут
------------------
Продолжая экспериментировать, выяснил, что самым оптимальным вариантом будет являться

Visual Basic
1
2
3
Sub StartFL(ByVal Control As IRibbonControl)
    Application.OnTime Now, "MyMacro"
End Su
Небольшой трюк, делающий "неотложный отложенный старт"
0
 Аватар для rediffusion
5 / 5 / 0
Регистрация: 13.11.2016
Сообщений: 90
30.05.2019, 22:15
Чтобы не создавать новую тему тут напишу (тематика схожая, проблема с клавишами).

В "Excel" добавил свою надстройку. Использовал "XML" для вызова изнутри keytip="БП" и onLoad="ВыборВкладки". Запускаю "MyExcelAddin.xlam" - РАБОТАЕТ!
Но! Есть одно но! Дело в том что после того как я перехожу во вкладку - Разработчик > Надстройки Excel = там выбираю свою надстройку... Открываю надстройку или любую другую Книгу и бум НЕ РОБИТ уже! Чё за прикол я так и не понял!?
Кароче не работает после выставления галочки!

Нашёл на одном портале StackOverflow, что во время загрузки (сама "загрузка" Excel) на "Ленте" что то блокирует и нужно использовать "OnTime" совместно с "Wait" или "Sleep".
Но подходящего кода я не нашёл.

Имеем...

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="ВыборВкладки">
    <ribbon startFromScratch="false">
        <tabs>
            <tab id="mytab_1" label="My Macros" keytip="БП">
                <group id="Sheets" label="Листы">
                    <button
                        idMso="About"
                        label="Показать About"
                        screentip="Bla bla bla"/>
            </tab>
        </tabs>
    </ribbon>
</customUI>
Visual Basic
1
2
3
4
 ' (компонент: customUI, атрибут: onLoad), 2007
Sub ВыборВкладки(ribbon As IRibbonUI)
    SendKeys "%БП{F6}"
End Sub
P.S. :
"Office 2019"
"Microsoft Windows 10 Enterprise 2016 LTSB"
0
 Аватар для rediffusion
5 / 5 / 0
Регистрация: 13.11.2016
Сообщений: 90
28.06.2019, 18:43
Сам отвечу.
Кароче тут такая тема у кого «Office 2019» то не возитесь с этим не будет работать! Подробно на StackOverflow.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,680
Записей в блоге: 14
29.06.2019, 10:10
rediffusion, всегда смеялся над теми, кто стремится ставить себе "все самое новое"
0
 Аватар для rediffusion
5 / 5 / 0
Регистрация: 13.11.2016
Сообщений: 90
29.06.2019, 13:31
Catstail,

Я что знал? А у вас что стоит? Многие пользуются «Office 365» что думаете по поводу?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,680
Записей в блоге: 14
30.06.2019, 11:09
rediffusion, да я Вас ни в чем не обвиняю... У меня на десктопе Офис-2010, на ноуте - 2003
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.06.2019, 11:09
Помогаю со студенческими работами здесь

Кнопки на сайтах не нажимаются
Кнопки на сайтах не нажимаются курсором. В Google кнопка &quot;Пуск&quot; только через &quot;Enter&quot;, курсором вообще никак. В Youtube &quot;Пуск&quot;...

При запуске программы, кнопки DBNavigator не нажимаются
на форме компонент DBNavigator с вкладки DataControls хочу проверить как работают его разные события в частности BeforeAction но при...

Пульт Philips 42PFL5322S. Плохо нажимаются кнопки
Собственно вот пульт Philips 42pfl5322s/60 , если понадобится. Проблема следующая: все кнопки работают, но большая часть из них...

На залитом ноутбуке нажимаются две кнопки вместо одной
Залили ноут пивом, давно. Стали туго отходить некоторые кнопки бэкспэйск, энтер, правый шифт. Снял клаву с ноута hp pavilion 17 notebook...

Windows 10 при включении ПК бывает не нажимаются кнопки мышки
Включаю сегодня ПК и не могу никуда нажать мышкой. Курсор бегает как обычно, но нажать на ярлыки рабочего стола, или в панель быстрого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru