Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как проверить, принадлежит ли запущенный код активному листу

Автор вопроса: Quintin BalsdonОтветов: 1

Я написал код для таблицы Excel. Этот элемент был добавлен на ленту с использованием стандартных настроек, которые можно найти в меню "Файл" -> "Параметры" -> "Настроить ленту". Что забавно, так это то, что настройка запустит Sub на ТОЧНОМ ФАЙЛЕ EXCEL, в котором написан Sub, то есть на оригинале.

Мои пользователи копируют файл Excel и вносят коррективы, а затем запускают подпрограмму (нажав настраиваемую кнопку на ленте), которая затем открывает ИСХОДНЫЙ файл шаблона и запускает код. На самом деле это работает отлично, и мне это нравится, потому что он запускает код ШАБЛОНА на АКТИВНОМ листе. Но единственная проблема в том, что он также ОТКРЫВАЕТ исходный файл шаблона. Как заставить его закрыться? Помните, что это больше не ActiveSheet.

Один из возможных ответов - проверить, открыт ли шаблон, а затем закрыть его (используя статическую ссылку), но я бы предпочел что-то более элегантное.

  • Я полагаю, что когда элегантность программирования VBA остается за дверью... Quintin Balsdon 06.01.2013
  • Извините, у меня нет excel 2007/10. Можно ли назначить макрос кнопке, попросив ее определить ее как RunMacro вместо MyWorkbook.xlsm!RunMacro в исходной книге? shahkalpeshp 06.01.2013

vbaexcel-2010

Ответы

Ответ 1 · Erik Eidt

Вы должны быть в состоянии найти шаблон/оригинал, используя ThisWorkbook.


Кроме того, если вы предоставите код своей рабочей книги в формате .xlam вместо .xlsm, он будет открыт, но для него не будет окна, поэтому пользователи его не увидят.


Не уверен, что вы уже используете это, но вы также можете использовать "только для этой книги" при добавлении кнопок ленты для .xlam . (Доставка в формате .xlam позволяет устанавливать кнопки из книги на ленту, не полагаясь на путь к файлу и не требуя, чтобы ваши пользователи также устанавливали кнопки (вместо этого они устанавливают .xlam).)

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы