Как переименовать кнопку в Excel

Обновлено: 05.07.2024

Кнопки используются в Excel для вызова макросов. На вкладке «Разработчик» вы можете вставить кнопку и назначить ей макрос. Затем нажатие на эту кнопку запустит выбранный макрос. После настройки кнопки вы можете изменить ее свойства. В электронной таблице одним из простых способов привлечь внимание к кнопке является изменение цвета кнопки.

Изменение цвета фона кнопки управления ActiveX

<р>1. Во-первых, убедитесь, что режим разработки («Разработчик» > «Элементы управления» > «Режим разработки») включен, чтобы вы могли использовать параметр «Свойства».
(Если вы не видите вкладку "Разработчик", настройте ленту, чтобы добавить ее.)

<р>2. Выберите кнопку, цвет которой вы хотите изменить. Затем на ленте выберите Разработчик > Элементы управления > Свойства.

<р>3. После этого откроется окно свойств. Чтобы изменить цвет фона кнопки, (1) нажмите «По алфавиту», чтобы просмотреть список свойств кнопки в алфавитном порядке. Затем (2) выберите BackColor в левом столбце и (3) щелкните стрелку в правом столбце, чтобы отобразить параметры цвета. Наконец, (4) выберите цвет (из палитры или системы).

После нажатия на нужный цвет цвет кнопки изменится автоматически. Как вы можете видеть ниже, цвет фона кнопки ActiveX соответствует цвету заливки фигуры.

Изменить цвет переднего плана кнопки управления ActiveX

Как показано выше, цвет фона кнопки – это цвет ее заливки. Вы также можете настроить цвет текста на кнопке, изменив передний цвет.

<р>1. Для этого на ленте выберите Разработчик > Свойства.

<р>2. В окне «Свойства» (1) нажмите «По алфавиту» и (2) выберите «ForeColor». После этого (3) нажмите стрелку справа, чтобы отобразить параметры цвета, и (4) выберите цвет из палитры (или системы).

В результате будет изменен цвет текста (передний цвет) кнопки. Преобразованная кнопка, показанная ниже, лучше видна в Excel, чем стандартная серая кнопка с черным текстом.

У меня возникла проблема с некоторыми командными кнопками в динамической электронной таблице, которую я создаю. Я добавляю командную кнопку на страницу, и она имеет имя «commandbutton1». Я хотел бы переименовать ее во что-то более значимое. Когда я переименовываю кнопку, а затем перебираю кнопки на странице и пытаюсь сопоставить имя, оно не работает. Я вставил окно сообщения, чтобы увидеть, какие имена он возвращает, и по какой-то причине он продолжает возвращать «commandbutton1» даже после того, как я обновил свойство имени.

Кто-нибудь знает, что вызывает эту проблему?

Как вы это пробовали?

А как вы (собственно зачем) динамически создаете кнопки?

Чтобы назвать CommandButton ( ActiveX From Control Toolbox )

Щелкните правой кнопкой мыши на кнопке и выберите "Свойства" и "Редактировать (Имя)".

Чтобы назвать кнопку (НЕ ActiveX из панели инструментов Forms)

Нажмите кнопку и введите новое имя в поле имени (слева от строки формул), а затем нажмите Enter.

Добро пожаловать в ozgrid

Вы «переименовываете» свойство Name или, возможно, свойство Caption?

Эти кнопки ActiveX находятся на рабочем листе?

[FONT="Arial Black"][COLOR="blue"][SIZE="4"]Bill[/SIZE][/COLOR][/FONT]
Совет. Во избежание погони за кодом всегда используйте Явный вариант.

Извините, я не понял, электронная таблица создается для сбора динамических данных. Страницы имеют предустановленный макет с командными кнопками.

Я думаю, это как-то связано с длиной имени. Есть ли ограничение на количество символов в названии кнопок? Я попробовал более короткое имя, и оно изменилось.

Спасибо
Трой[hr]*[/hr] Автоматическое объединение сообщений до истечения 24 часов;[dl]*[/dl]Да, я переименовываю свойство name, а не заголовок.

Не уверен, что это кнопки ActiveX. Я унаследовал электронную таблицу и обновляю ее. Я знаю, что это не марко-кнопки, если это имеет значение, и у них есть свойства onclick.

Они должны быть ActiveX, если имя «Commandbutton1». Кнопки меню «Формы» называются «Кнопка 1».

Угадайте, что. Я сделал тест, и изменение имени не удалось, когда я добавил символ 129 (начиная с имени с одним символом). Ваши имена длиннее этого? Я не могу представить, почему они могут быть.

[FONT="Arial Black"][COLOR="blue"][SIZE="4"]Bill[/SIZE][/COLOR][/FONT]
Совет. Во избежание погони за кодом всегда используйте Явный вариант.

Нет, только 35 символов ExportMaterialTransferButton работали, а ExportMaterialTransferReportButton — нет. Он не выдает ошибку и показывает, что переименовал его, но когда я перебираю элементы управления на листе, имя не изменилось.

У меня нет проблем с тем, чтобы назвать кнопку ActiveX на листе "ExportMaterialTransferReportButton".

Не могли бы вы опубликовать образец

[FONT="Arial Black"][COLOR="blue"][SIZE="4"]Bill[/SIZE][/COLOR][/FONT]
Совет. Во избежание погони за кодом всегда используйте Явный вариант.

У меня есть рабочая книга с 9 листами, и я хочу, чтобы на листе были экспортированы все данные с других листов, поэтому у меня есть кнопка на этом первом листе, которая экспортирует все листы, и когда я помещаю этот код под событие нажатия кнопки и выполните его, имя кнопки, которое я изменил на одном из других листов, не сохраняется и отображает старое имя кнопки.

Не уверен, что это имеет смысл, но дайте мне знать.

Вы разместили код, отображающий названия объектов.

Это код, который вы пытаетесь изменить имя?? Это то, что нам нужно увидеть.

[FONT="Arial Black"][COLOR="blue"][SIZE="4"]Bill[/SIZE][/COLOR][/FONT]
Совет. Во избежание погони за кодом всегда используйте Явный вариант.

Билл прав: нам не нужно видеть циклический код и отображать названия кнопок.

Кроме того, было бы полезно, если бы вы на самом деле разъяснили, что вы делаете в первую очередь.

Меня очень смутил ваш предыдущий пост, но в этом нет ничего необычного.:confused:

Почему вы динамически создаете эти кнопки?

Зачем их переименовывать?

Я не создаю кнопки динамически, они создаются на странице статически. Кода смены кнопок нет. Я меняю название кнопки на самом листе.

Хорошо, я попытаюсь объяснить это лучше.

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

Вышеприведенный код выполняет цикл по каждому листу, а затем по объектам на этой странице. Если объект соответствует одной из кнопок экспорта, я экспортирую данные для этого листа, а затем перехожу к следующему листу.

Моя проблема, скажем, на листе 3. У меня есть кнопка, которая называется ExportSheet3ReportButton. Когда я создаю кнопку, она вызывает commandbutton1, затем я переименовываю ее в ExportSheet3ReportButton. Когда я перешел на главную страницу, чтобы экспортировать все листы, я нажимаю кнопку ExportAllSheets и в целях отладки я отображаю имя каждого объекта, когда он попадает в ExportSheet3ReportButton, вместо отображения имени ExportSheet3ReportButton, он по-прежнему показывает commandbutton1, хотя я изменил имя на самом листе.

Если вы создаете книгу Excel для использования другими людьми, вы можете добавить кнопки управления формой, чтобы им было легко запускать макросы. В одном из моих образцов файлов на каждом листе есть кнопки навигации, так что вы можете быстро перейти к предыдущему или следующему листу. Однако есть несколько причудливых кнопок управления формой — возможно, вы сталкивались с некоторыми из них. Сегодня мы рассмотрим одну из причудливых названий кнопок — скрытое имя, которое Excel яростно защищает.

Имя кнопки управления формой по умолчанию

Когда вы добавляете кнопку управления формой на лист, она получает пронумерованное имя по умолчанию, например «Кнопка 1». Это имя также отображается в качестве подписи.

Когда кнопка выбрана, ее имя отображается в поле имени слева от строки формул.

Переименовать кнопку управления формой

Вы можете легко изменить название кнопки, введя другое имя в поле имени и нажав клавишу Enter. Например, измените Button 1 на «NewName».

Восстановить имя по умолчанию

Однако это не всегда так просто. Спасибо Дэйву Унгеру, который предупредил меня о причуде с названиями кнопок форм. Он описал проблему на форуме StackOverflow.

Проблема возникает, если вы решите вернуть этой кнопке ее исходное название «Кнопка 1».

  • Введите «Кнопка 1» в поле «Имя» и нажмите Enter.
  • Ничего не происходит.

Название кнопки по-прежнему отображается как «NewName». На скриншоте ниже

  • В верхней половине показано исходное имя, которое я ввел при попытке восстановить это имя.
  • Нижняя половина показывает, что имя не было принято и осталось как «Новое имя».

Восстановить имя по умолчанию с помощью макроса

Если вы знаете исходное название кнопки, вы можете использовать макрос, чтобы восстановить это имя. Следующий макрос восстанавливает исходное имя «Кнопка 1», которое ранее было переименовано в «Новое имя».

Повторяющиеся названия кнопок

Еще одна особенность (или, может быть, функция) заключается в том, что вы можете присвоить нескольким кнопкам одно и то же имя. Я использовал макрос, чтобы назвать все три кнопки «Кнопка 10»

Но когда я запустил макрос для перечисления каждой кнопки с ее названием, адресом верхней левой ячейки и заголовком, он выдал подробности для первой кнопки 3 раза.

Это может вызвать проблемы, если вы ссылаетесь на кнопки по имени в любом из ваших макросов.

Внутренние названия кнопок

Но что, если вы не помните исходное название кнопки? И как узнать, какие «внутренние» имена по умолчанию в настоящее время зарезервированы Excel?

Если вы используете макрос для вывода списка всех кнопок и их названий, вы увидите только текущие видимые имена. Нет свойства, раскрывающего внутреннее имя.

Единственный способ, который я нашел, чтобы получить эти имена, — это пройтись по списку чисел и посмотреть, какие кнопки имеют совпадающие пронумерованные имена. Вы можете получить этот макрос на странице кнопок управления формой моего веб-сайта Contextures.

Дублирование имени

Макрос List All Buttons работает достаточно хорошо, если ни одной из кнопок не было присвоено имя, конфликтующее с именем другой кнопки по умолчанию.

В этом случае список может отображать неправильные результаты для некоторых кнопок. В приведенном ниже списке код повторял информацию для кнопки 1 (отображаемое имя «Кнопка 3») вместо отображения правильных сведений для кнопки 3 по умолчанию.

Чтобы помочь в этой ситуации, вы можете включить дополнительную строку, которая переименовывает каждую кнопку в ее пронумерованное имя. Это может не сработать в 100 % случаев, но может помочь!

Вот тот же список с включенной опциональной строкой переименования.

Получить пример файла с особенностями кнопки управления формой

Чтобы поэкспериментировать с кнопками формы и особенностями их именования, перейдите на страницу кнопок управления формой на моем веб-сайте Contextures и загрузите образец файла.

И, пожалуйста, дайте мне знать, если вы обнаружите какие-либо другие особенности кнопки управления формой!

Оставить ответ Отменить ответ

Этот сайт использует Akismet для уменьшения количества спама. Узнайте, как обрабатываются данные ваших комментариев.


VBAX Regular Регистрация Октябрь 2007 г. Сообщения 97 Местоположение

Переименовать встроенную кнопку на листе

Привет, ребята,
Я пытаюсь добавить кнопку на рабочий лист в выбранной ячейке и изменить ее имя с помощью VBA.
Имя взято из входного сообщения.

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

Посмотрев на записанный макрос, я заметил, что положение описывается значениями "Слева", "Сверху", "Высота" и "Ширина".

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

и как я могу переименовать как заголовок, так и фактическое имя кнопки?


VBAX Newbie Присоединился к нам в июле 2010 г. Сообщений 4

Selection.Address должен возвращать абсолютный адрес в строковом формате

Что это за командная кнопка? Кнопки формы и кнопки ActiveX по своей сути отличаются друг от друга.


VBAX Mentor Присоединился к нам в апреле 2009 г. Местоположение Kingsbury Posts 423 Location

Здравствуйте
Попробуйте это не очень хорошо проверено, вставьте имя в A1

Sub Macro1()
'
' Macro1 Macro

Set Mytxt = Worksheets("sheet1").Range("A1") 'то, что появляется в A1, заменяет текст в кнопке
ActiveSheet.Shapes("Button 1"). Выберите 'change "Button 1 " на "CommandButton1", если кнопка = activeX
Selection.Characters.Text = Mytxt
With Selection.Characters(Start:=1, Length:=4).Font
.Name = "Times New Roman"
.FontStyle = "Regular"
.Size = 10
. Strikethrough = False
. Надстрочный индекс = False
. Подстрочный индекс = False
. OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
'.ThemeColor = 2
'.TintAndShade = 0
'.ThemeFont = xlThemeFontNone
Конец с


VBAX Regular Зарегистрирован, февраль 2014 г. Сообщений 53 Местоположение

Привет всем,
Извините, что возрождаю старую тему, но я новичок в VBA и у меня есть вопрос относительно приведенного выше кода. Я смог использовать этот код, чтобы переименовать одну из моих кнопок, но я не понимаю, зачем нужен «выбрать». В другом месте я всегда вижу людей, рекомендующих не использовать «выбор». Так. Я пытался переписать это:

Читайте также: