- Добавлен макрос кнопки — Excel 2007
- Видеокурсы по Excel
- Цель: создана кнопка с действием
- Как это сделать?
- Создан лист
- Элементы управления формулами
- Элементы управления ActiveX
- Результат для загрузки
- Рекомендуется
- Предупреждение
- Если
- Павел Ласбк — автор сайта
- Комментарии
- Зденмк
- Павел Ласбак
- Павел Ласбак
- Джон
- Павел Ласбак
- Джон Б
- Павел Ласбак
- Ярын
- Павел Ласбак
- Ярын
- йогурт
- Павел Ласбак
- Павел Ласбак
- ярын
- Феникс
- Павел Ласбак
- Феникс
- Павел Ласбак
- Феникс
- Павел Ласбак
- Феникс
- Павел Ласбак
- Феникс
- Павел Ласбак
- Феникс
- Павел Ласбак
- Павел Ласбак
- Радек
- Павел Ласбак
- Мирек
- Джон В.
- Катька К
- Павел Ласбак
- рогало22
- рогало22
- Мартин
- Джон
- Двор
- Пол
- крикет
- самуэль
- Пол
- жарабр
- Ленка
- Лукас
- Лукас
Добавлен макрос кнопки — Excel 2007
Видеокурсы по Excel
В сотрудничестве с SEDUO я создал несколько видеокурсов:
- Как работать с Excel – научитесь эффективно использовать Excel – самый популярный ( рейтинг 97 %, более 13 000 студентов, + 750 положительных отзывов ) – Получить курс
- MaxiCourse Excel – получите лучшую работу, больше денег, станьте незаменимым ( более 6 часов просмотра, 160 уроков ) – Получить курс
- G-таблицы. — если не нравится Excel, воспользуйтесь курсом на Google-таблицах
Далее в серии статей об Excel 2007 и макросах
Цель: создана кнопка с действием
У меня много вопросов о макросах ( на которые я не могу ответить индивидуально
) Я решил ответить на наиболее часто возникающие вопросы в статьях, чтобы они могли помочь и другим людям.
Требование: Как создать кнопку, которая будет переходить на другой лист при нажатии.
Практический пример: Простая идея: у вас есть степлер с восемью листами. Первый лист в Excel 2007 назывался список , а другой понедельник , четверг до Скоро . Вам нужно будет разместить на листе список из семи кнопок, которые приведут вас к листам с нужными названиями. Для ясности переименуем кнопку Pondmln — Sunday. И из каждого листа с названием дня нужно будет с помощью кнопки вернуться к листу с названием список .
Как это сделать?
Мы можем использовать два варианта:
- элементы управления рецептурой — и запись макроса
- Элементы управления ActiveX — и запрограммировать код на Visual Basic
Я покажу оба варианта. Вы можете выбрать, что проще и быстрее для вас. Оба варианта приведут к желаемой цели.
Создан лист
Покамы приступим к созданию отдельных кнопок. Давайте создадим наши лоскутные листы. Назовем первый лист списком, а остальные названиями дней с понедельника по воскресенье.
Когда мы закончим, мы можем разместить кнопки.
Элементы управления формулами
Поместите кнопки из вкладки Разработчик , из раздела Элементы управления разверните элемент Вставка.. . Затем мы выбираем кнопку формулы . Нужно правильно его выбрать, иначе можно выбрать кнопку ActiveX, о которой я расскажу дальше.
Как только мы разместим кнопку, мы увидим возможность создать макрос для этой кнопки. В появившемся окне мы выберем из существующих. Или мы создадим новое имя для возможного макроса, оно будет выбрано автоматически в соответствии с названием кнопки (это будет добавлено в Excel). Затем нажмите «Запись».
В появившемся окне мы можем выбрать имя макроса (рекомендую изменить его — возможно, на имя jump-to-list-monday). Я рекомендую сменить имя, основываясь на собственном опыте. Когда у вас будет больше макросов (около 20), вы не будете помнить, что делает каждый из них. Другие варианты: хотите ли вы сохранить макрос только для этой книги или будете использовать его в другом месте. Поскольку это образец, мы оставим его только для этой книги.
При желании мы можем добавить сочетание клавиш.
И после нажатия ОК мы уже записываем. Просто нажмите на лист Pondmln и выйдите из макроса. Нажав на синий квадрат.
После нажатия кнопки прыжок к пруду уже работает. Только эта кнопка какая-то странная, потому что она называется Кнопка 29 . Итак, щелкните правой кнопкой мыши Редактировать текст и измените его название на Понедельник
.
И готово. Мы повторим эту процедуру только для остальных дней.
Что ж, если вам не нравится эта процедура, вы можете попробовать использовать ActiveX и Visual Basic.
Элементы управления ActiveX
Тлаинткана вкладке Разработчик в разделе Элементы управления раскройте пункт Вставка.. . И затем мы выбираем эту кнопку ActiveX
Поместите кнопку на лист нужного размера. Holt Excel назовет его CommandBotton1 . Что не оптимально в качестве имени кнопки (если вы не сумасшедший или политик). Так что будем переименовывать. Опять же, на вкладке Разработчик в разделе Элементы управления мы увидим Свойства . Где в поле Заголовок меняем непрактичное имя на Центр.
Снова из вкладки Разработчик из раздела Элементы управления переходим в режим Режим конструктора . Теперь просто нажмите кнопку, и мы перейдем к Visual Basic. Где мы уже добавляем функцию к кнопке. т.е. нам нужно перейти на средний лист (потому что кнопка называется Middle). Просто введите где:
А когда отключаем режим, кнопка уже работает. Аналогичным образом необходимо восполнить и остальные дни. А в другие листы вставьте кнопку для перехода к списку.
Результат для загрузки
Я предоставляю файл Excel для скачивания.
PS: Когда будешь сдавать в школу, не забудь изменить мое имя в футере 🙂
Кнопка Excel — пример для загрузки в Excel (размер 95 кБ)
Рекомендуется
Вы можете получить оригинальный Excel 2007 вместе с WORD 2007, Power Point 2007 и One Note 2007 от Microsoft за 1600 крон.
Предупреждение
Если речь идет о каких-либо школьниках, поступивших в школу. Поэтому я извиняюсь перед этим учителем. ему, вероятно, придется придумать что-то еще. С другой стороны, может быть приятно, что студенты умеют пользоваться списком и гуглом :). Интересно наблюдать, насколько точно учащиеся могут вводить данное выражение. Кроме того, когда одинаковая оригинальная дота появляется 4 раза с одинаковых IP-адресов за один деньадрес, так что ничего не будет.
Это не означает, что они представляют все вопросы, полученные по электронной почте. В сутках должно быть 96 часов.
Статья обновлена: 19.09.2020 11:06
Если
Помог ли этот веб-сайт сэкономить вам время и деньги? Помог ли он решить проблему? Готовы ли вы предоставить символическое вознаграждение за дальнейшее развитие? Выберите форму вознаграждения, которая вам подходит.
Павел Ласбк — автор сайта
Microsoft Office (Word, Excel, Google Sheets , PowerPoint) Я использую с 2000 года (с 2004 года в этом домене) — В 2017 году я получил престижную награду MVP от Microsoft (пока я единственный из IR в категории Excel). Я также делюсь своими знаниями и опытом онлайн в видеороликах для SEDUO . В компаниях преподаю и консультирую , работаю в МУНИ. Я создаю этот сайт более 15 лет. Существует более 1000 бесплатных инструкций, советов и рекомендаций, включая более 250 различных шаблонов и рабочих книг.
Комментарии
Зденмк
Добавлено: 23.02.10 21:03
Ваш веб-сайт великолепен, я черпаю из него знания. Есть только одна (то есть больше) вещь, которую я делаю не очень хорошо. Мне нужно добавить к кнопке ссылку на файл, который хранится на диске, я пробовал через гиперссылку через Ctrl+K. Ссылка работает, но только когда активен \»Режим черновика\». Вы можете мне как-то помочь?
Павел Ласбак
Добавлено: 24.02.10 20:45
К Зденмку: Должна ли кнопка открывать файл?
Павел Ласбак
Добавлено: 25.02.10 15:30
Зденмку: Команда для открытия файла: Workbooks.Open FileName:=»C:\\directory\\file-name.xls»
Джон
Добавлено: 13.04.10 07:09
Как импортировать массив ячеек из одного места в другое с помощью макросов, пожалуйста? Спасибо
Павел Ласбак
Добавлено: 13.04.10 21:26
Хонзе: Я хотел бы помочь, но не понимаю вопроса.
Джон Б
Добавлено: 03.06.10 14:32
Здравствуйте, мне нужен совет. Можно ли создать макрос, чтобы у меня открывалось окно поиска (ctrl+f)?
Павел Ласбак
Добавлено: 03.06.10 16:21
В HonzaB: см. код:
Ярын
Добавлено: 05.02.11 20:32
Здравствуйте, подскажите пожалуйста, как подключить несколько кнопок? Я имею в виду это так: я нажимаю на одну кнопку и ввожу значение в поле ввода, нажимаю на вторую кнопку, ввожу значение в поле ввода и нажимаю на третью кнопку, которая, например, суммирует значения от кнопок 1 и 2. Нигде не могу найти. Большое спасибо за совет.
Павел Ласбак
Добавлено: 03.05.11 17:03
К Джарин: Кнопки будут в блокноте или в форме?
Ярын
Добавлено: 03.05.11 18:57
йогурт
Добавлено: 04.05.11 10:14
Проблему перехода в другую часть документа можно решить более элегантно без кнопки, макроса и активекса, используя гиперссылку.
Павел Ласбак
Добавлено: 04.05.11 16:05
для Jaryn: значение из InputBox pass = InputBox(«Введите пароль», «Пароль»)
Павел Ласбак
Добавлено: 04.05.11 16:08
К йогурту: Вы правы, но может быть кому-то не нравится гиперссылка. Во многом это зависит от того, чего человек ожидает от того или иного события.
ярын
Добавлено: 15.05.11 10:19
спасибо, я уже разобрался
Феникс
Добавлено: 10.11.11 10:58
Здравствуйте, я попробовал код для открытой книги. Все работает, но мне нужно открыть книгу, где установлен пароль на открытие. Я знаю пароль, но мне нужно, чтобы пароль был в коде. Возможно ли это?
Павел Ласбак
Добавлено: 11.10.11 19:41
Fenix: Как насчет Workbooks.Open Filename:=»C:\file-with-password.xls», Password:=»Heslo-k-file»
Феникс
Добавлено: 14.11.11 09:51
Спасибо, все работает как надо.
Павел Ласбак
Добавлено: 14.11.11 16:10
ЭтоФеникс: Я рад.
Феникс
Добавлено: 18.11.11 09:46
Здравствуйте, у меня к вам еще один вопрос. Когда я открываю книгу, я запускаю макрос с msgbox (он хранится в ThisWorkbook с действием open. Этот msgbox имеет информационный характер с кнопкой OK. Знаете ли вы, как обойти это, чтобы он был сохранен в код, и вам не нужно нажимать «ОК»? В остальном ваши страницы превосходны, и мне нравится ими пользоваться. Спасибо
Павел Ласбак
Добавлено: 18.11.11 18:34
Fenix: я не знаю, как отправить MsgBox, но я бы использовал, например: Private Sub Workbook_WindowActivate(ByVal Wn As Window) CreateObject(«WScript.Shell»). Popup «Я исчезну через 1 секунду» , 1, «Message» End Sub Или используйте UserForm и закройте Application.OnTime Now + TimeValue(«00:00:05»), «KillUserForm1»
по истечении требуемого времени
Феникс
Добавлено: 21.11.11 08:41
Спасибо за идеи, я попробую и дам вам знать, как у меня получилось.
Павел Ласбак
Добавлено: 21.11.11 13:26
To Fenix: Я искал в сети, но даже дядя Google не помог. Как отправить msgbox без упоминания и когда у меня это не сработало.
Феникс
Добавлено: 12.02.11 10:45
Поэтому я попробовал первый вариант с CreateObject, и он работает так, как я себе представлял. Не могли бы вы сообщить мне, где вы это нашли? В частности, я говорю о параметрах. Я нашел классический CreateObject, но не ваш вариант. Можно ли изменить продолжительность? Если я изменю число 1 на 2, то мой объект не закроется. Спасибо за помощь.
Павел Ласбак
Добавлено: 12.02.11 17:54
To Fenix: С помощью google я когда-то искал что-то похожее, может быть, это был этот сайт, см. http://www.vbaexpress.com/kb/getarticle.php?kb_id=693 Я просто записал, где должен быть регулируемым, у вас есть Option Explicit в модуле?
Феникс
Добавлено: 05.12.11 09:35
Спасибо, я посмотрю. Стандартный вариантЯ не использую явное. Но еще раз спасибо.
Добавлено: 14.12.11 09:35
Здравствуйте, я хотел бы обратиться к вам за помощью, мне нужно создать макрос в столбце значений, чтобы курсор перемещался в первое свободное поле? Так например в столбце А есть непрерывный ряд значений А1-А10 и мне нужно чтобы программа перешла к полю А11. Процедура создания макросов может выглядеть так: A1, ctrl+end, стрелка вниз, но эта процедура не работает для записи макросов. Я понимаю.
Добавлено: 09.03.12 23:51
У меня есть лист под названием 7 mš, в макросе у меня такой код: List2.Activate и вместо List2 мне нужно поставить 7 mš. Как?
Павел Ласбак
Добавлено: 10.03.12 15:46
Кому: см. статью http://office.lasakovi.com/excel/vba-listy-bunky/radky-sloupce-excel-vba-kody/
Павел Ласбак
Добавлено: 10.03.12 15:51
В БФУ: например: Рабочие листы(«7 м²»). Активировать или листы(2).активировать или переименовать лист 7 м² в Лист2 🙂
Радек
Добавлено: 12.11.12 08:02
Здравствуйте, я хотел использовать кнопку для перехода между листами. Однако, если лист скрыт, он выдает ошибку, что, по-видимому, является стандартным поведением. Не могли бы вы посоветовать мне, как по-другому подготовить тест из нескольких вопросов, когда я не хочу, чтобы тестируемый мог вернуться к предыдущим ответам? Думал, что бы каждый вопрос помещал на один лист, под вопросом нажимали бы следующий вопрос с переносом на следующий лист.Наверное это лучше, чем иметь список вопросов на одном листе, но и тогда можно легко переключаться между ними. Спасибо за совет.
Павел Ласбак
Добавлено: 12.11.12 16:45
К Радеку: Лично я бы сделал это через формы, но я не знаю точной цели, как вы планируете составлять вопросы (насколько они будут обширны), сколько ответов, как они будут обработано, оценено и т. д.
Мирек
Добавлено: 21.01.13 16:15
хорошодень, надеюсь не обижу, если напишу свою аналогичную задачу, но из ворда. Я хотел бы исправить проблему, когда после нажатия на одну кнопку добавляется другая кнопка.Моя проблема в том, что мне нужно обратиться к одному макросу (функции) для вновь добавленных кнопок. И я не знаю, как с этим справиться. Sub Macro1() Set shp = Selection.InlineShapes.AddOLEControl(ClassType:=»Forms.CommandButton.1″) shp.OLEFormat.Object.Caption = «Удалить компанию» End Sub Sub Macro2() msgbox «delete» End Sub
Джон В.
Добавлено: 31.01.13 20:40
Добрый вечер, мистер Ласбак, прежде всего я хочу поблагодарить вас за отличный сайт. Я пытаюсь использовать макросы на работе в Excel. Я полный новичок, учусь около недели, и мне удалось получить все, что мне нужно, с вашего сайта. Прочитал почти все, но нигде не нашел макроса, который помог бы мне при вставке номера строки. Хотелось бы совета, как построить макрос, который должен работать так: на листе 1 в ячейке А1, мне нужно, чтобы при нажатии на эту ячейку исходное число, которое сейчас там, автоматически увеличивалось на +1, если есть i.3, значит после щелчка был и.4. Можно ли создать такой макрос? Заранее благодарим за помощь.
Катька К
Добавлено: 13.06.13 15:30
Здравствуйте, у меня так получилось, что существующие кнопки с добавленными макросами работали на моем компьютере. Когда файл был передан (по электронной почте) на другой конкретный компьютер, ссылка была удалена. Как это предотвратить? Большое спасибо за информацию Катька
Павел Ласбак
Добавлено: 13.06.13 16:26
Катьке К.: Я никогда не сталкивался с чем-то подобным. Были ли у пользователя заблокированы макросы VBA? Разве он не был сохранен как *.xlsx? Какая версия Excel (такая же)?
рогало22
Добавлено: 09.05.13 13:00
Здравствуйте, нужен совет, как добавить ссылку на макрос на правую кнопку мыши. Большое спасибо
рогало22
Добавлено: 07.09.13 13:38
Здравствуйте, я уже нашел http://www.slezak-petr.cz/VBA/Tipy/xls_kontextove_menu.htm Большое спасибо
Мартин
Добавлено: 11.07.13 21:00
Здравствуйте, у меня уже 2 раза было так, что все макросы, прикрепленные к кнопкам, перетасовывались — т.е. что кнопка ссылалась на другой макрос, чем должна была. Рабочая книга была открыта, может быть, 100 раз в 2003 и 2007 годах, но только 2 раза эта проблема. Что насчет этого? я думаю
Джон
Добавлено: 26.11.13 18:53
Здравствуйте, я хотел бы посоветовать, как добавить макрос к кнопке, чтобы при нажатии этой кнопки на указанный адрес электронной почты отправлялся определенный лист, содержащий кнопку. Просто он должен выглядеть и работать точно так же, как форма, которую я сейчас печатаю. Спасибо за помощь
Добавлено: 01.03.14 14:16
Здравствуйте, я ищу информацию о том, как узнать в макросе, с какой кнопкой или фигурой был запущен макрос. Эта информация войдет в переменную, и макрос будет соответствующим образом изменен. Большое спасибо за совет!
Добавлено: 01.06.14 08:02
Я уже посмотрел. Вы можете использовать код: ActiveSheet.Shapes(Application.Caller).Name
Двор
Добавлено: 01.07.14 17:56
Здравствуйте, я хотел бы получить совет относительно пароля для запуска макросов. В файле два листа, второй из которых скрыт. На первом листе (видимом для всех) есть макрокнопка, которая отображает (видима) второй лист. Как настроить макрос, чтобы сначала запрашивать пароль? На втором листе есть макрос, который снова скрывает этот лист и сохраняет весь файл, это работает.
Пол
Добавлено: 12.01.14 11:54
PS: Когда будешь сдавать в школе, не забудь сменить мое имя в футере 🙂 Мне позвонил физик и сказал: «Эй, ты это из интернета взял, а? Что скажешь, а?Он пишет что я должен изменить имя в скобках,но это тебе не поможет. Хм? Клнннннннд. Я также серфить в сети. я тоже граблю. Я знаю имена. Он, доктор, делает пластинку.
крикет
Добавлено: 14.06.14 11:18
Здравствуйте, часто получаю информацию с вашего сайта, очень помогает в решении проблем, но хотелось бы совета. Как открыть ссылку (то есть папку) в программе, отличной от той, что задана неявно (проводник) Я бы не хотел вмешиваться в реестр, я бы только использовал его в некоторых книгах. Думаю, саламандра или коммандер.
самуэль
Добавлено: 25.09.14 08:33
Добрый день, хотел бы задать вопрос, хотелось бы запрограммировать кнопки, чтобы при нажатии на кнопку Excel отображал скрытый лист. Возможный ? Спасибо Споздравом само
Добавлено: 10.11.14 17:45
Здравствуйте, можно ли каким-то образом вставить идентификатор адреса интернет-соединения с компьютером в ячейку Excel, например. IDv4? Есть ли команда для этого в VBA? Я не мог найти его. Спасибо за ответ.
Добавлено: 11.10.14 17:55
Извините, я имел в виду IP-адрес :-)))
Пол
Добавлено: 08.11.14 04:43
Добрый день. Мне нужен совет, как настроить макрос для отправки по электронной почте. У меня есть записанный макрос, хоть и работает, но только на том аккаунте на ПК, где он был создан. подскажите пожалуйста как правильно написать макрос. Я также отправлю макрос, который у меня есть. С уважением, Павел Sub SendEmail() ‘ ‘ Макрос SendEmail ‘ ‘ ActiveSheet.Unprotect Range(«A1:Z51»).Select Selection.Copy Application.CutCopyMode = False ActiveWorkbook.ExportAsFixedFormat Тип:=xlTypePDF, Имя файла:= _ «C: \ Users\fc5481\AppData\Local\Temp\Љrot Љvédsko_2014.pdf», Quality:= _ xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _ OpenAfterPublish:=False Application.Dialogs(xlDialogSendMail).Show Range(«AA15 » ).Выберите ActiveSheet.Protect DrawingObjects:=True, Contents:=True,Сценарии:=True _ , AllowFormattingCells:=True, AllowFormattingColumns:=True, _ AllowFormattingRows:=True End Sub
жарабр
Добавлено: 01.09.15 13:29
to Katka K Добавлено: 13.06.13 15:30 Макросы видимо не переносились, так как сохранялись в личную книгу макросов (personal.xlsb) и сохраняется локально на ПК. Чтобы макрос оставался работоспособным в другом месте, его необходимо сохранить непосредственно в данной рабочей книге.
Добавлено: 02.02.15 21:31
Здравствуйте, я хотел спросить, как я могу вызвать форму без кнопки. Введите, нажав на определенную область ячеек. Без этой области ничего нельзя было сделать. Формула появится в определенной области. я думаю
Добавлено: 05.02.15 07:30
Алесу: Вставьте следующий код в лист (не в обычный модуль): Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address = «$A$5» Then UserForm1.Show End Sub
Ленка
Добавлено: 04.03.15 15:29
Здравствуйте, я хотел бы задать вопрос. Я создал тест на ответы ДА/НЕТ в Excel. Я хотел бы создать кнопку оценки теста, где для каждого ответа отображалось бы, является ли ответ правильным или неправильным. Как сделать кнопку, чтобы рейтинг ответа отображался только после нажатия на кнопку? Или есть другой более простой способ оценить тест в интерактивном режиме? Я понимаю.
Добавлено: 25.10.15 13:34
Здравствуйте, можно ли запрограммировать контрольную полку на элементе управления таким образом, чтобы при проверке одной полки проверялись и другие полки? Для элемента ActiveX CheckBox я задал, например, условие: If CheckBox1 = True Then CheckBox2 = True End If Но это не работает для элемента формы полки.
Добавлено: 12.09.15 11:37
Здравствуйте, я хотел бы открыть «поиск» (ctrl+f) сразу после исполняемого файла. Возможно создал кнопку поиска. Я использовал код выше(Application.Dialogs(xlDialogFormulaFind).Show — второй у меня не сработал). Проблема в том, что он открывает для меня «усеченную» таблицу, где у меня нет возможности искать по всей книге, а только на этом листе. И мне просто нужно выполнить поиск по всей книге. Заранее благодарим за помощь.
Лукас
Добавлено: 01.04.16 10:38
Может кто-нибудь посоветовать, как создать кнопку с макросом для сохранения страницы, на которой эта кнопка будет единственной. Дело в том, что у меня есть база несоответствующих товаров в одном экселе и заодно форма для жалобы, и после заполнения формы хотелось бы, чтобы лист сохранялся и желательно обнулялся, чтобы я не не нужно заново заполнять поля, но я не настаиваю на сбросе, наверное это будет слишком сложно, заранее спасибо за совет
Лукас
Добавлено: 01.04.16 11:54
Может кто-нибудь посоветовать, как создать кнопку с макросом для сохранения страницы, я хочу сохранить только одну страницу и ту, на которой находится кнопка. Дело в том, что у меня есть база несоответствующих товаров в одном экселе и одновременно форма для жалобы, и после заполнения формы хотелось бы, чтобы лист сохранялся и желательно обнулялся, чтобы я мог заполнить снова в поля, но я не настаиваю на сбросе, это, вероятно, будет слишком сложно, заранее спасибо за любой совет (исправление)