FusionBY Пользователь Сообщений: 18 |
Добрый день. В очередной раз ищу помощи сообщества. Такой вопрос,макрос сейчас выполняется по нажатию кнопки на конкретной странице. Идея состоит в том, чтобы макрос выполнялся не по нажатию, а при открытии книги. Поместить его в Private Sub Workbook_Open() не составило труда, однако макрос будет работать корректно только если книга откроется на нужном листе. Открываться книга конечно же будет на другом листе с расчетами, а курсы будут подставляться через функцию ВПР, помогите указать абсолютный путь исполнения макроса. P.S. Это нужно для того, чтобы Пользователь не запаривался о том, как обновляются циферки на странице и просто получал данные. |
The_Prist Пользователь Сообщений: 14181 Профессиональная разработка приложений для MS Office |
#2 20.05.2015 15:31:22 Как обратиться к диапазону из VBA
Кратко:
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||
Слэн Пользователь Сообщений: 5192 |
#3 20.05.2015 15:45:32 у листа есть так называемое кодовое имя — вот по нему и можно обращаться пример:
Живи и дай жить.. |
||
Слэн Пользователь Сообщений: 5192 |
самый малозатратный метод — в начале макроса запомнить текущий лист, перейти на нужный, отработать(без изменения кода), восстановить активность прежнего листа |
FusionBY Пользователь Сообщений: 18 |
А можно по подробнее о последнем методе? |
Scripter Пользователь Сообщений: 255 |
#6 21.05.2015 04:58:55 В дополнении к перечисленным
|
||
FusionBY Пользователь Сообщений: 18 |
Что-то я не совсем понимаю, к чему можно прикрутить «Sheets(«ИмяЛиста»).[A1].Value». Если я правильно понял, самый малозатратный метод будет работать следующим образом: Как это осуществить? |
Hugo Пользователь Сообщений: 23249 |
Зачем вообще переходить на другой лист, если нужно возвращаться? Без перехода всё обычно можно сделать (за редким исключением, что есть глюк экселя, сталкивался). |
FusionBY Пользователь Сообщений: 18 |
Полностью с Вами согласен, The_Priest предложил самый оптимальный вариант решения, однако мой небольшой опыт общения с VBA существенно усложняет реализацию. Но даже, когда у меня получится, все равно останется интерес к альтернативному способу, с запоминанием, переходом и возвратом на исходную. |
Hugo Пользователь Сообщений: 23249 |
#10 21.05.2015 12:35:07 Да ничего сложного:
P.S. И чего это r? Обычно sh! Хотя разницы нет. Изменено: Hugo — 21.05.2015 12:38:22 |
||
FusionBY Пользователь Сообщений: 18 |
Спасибо. Действительно все очень не сложно оказалось. Может быть вы любезно согласитесь глянуть где я допустил ошибку и почему не работает первый метод? Код идентичный, как при нажатии на кнопку, так и при запуске книги. Однако курсы обновляются только через «button». При открытие появляется только табличка «Готово»! |
Hugo Пользователь Сообщений: 23249 |
#12 21.05.2015 13:09:52 Вообще-то модуль книги — «стрёмное» место… P.S. Беда сидит в строке
Тут дописал лист. Изменено: Hugo — 21.05.2015 13:15:47 |
||
Здравствуйте имеется макрос удаления строк, что следует изменить чтоб он выполнялся на определенном листе?
[vba]
Код
Sub Udalenie_Pustyh_Strok()
Dim r As Long, FirstRow As Long, LastRow As Long
FirstRow = ActiveSheet.UsedRange.Row
LastRow = ActiveSheet.UsedRange.Rows.Count — 1 + ActiveSheet.UsedRange.Row
For r = LastRow To FirstRow Step -1
If Application.CountA(Rows(r)) = 0 Then
Rows(r).Delete
End If
Next r
End Sub
[/vba]
Вроде переименовал Активный на определенный лист, но он выполняется всеровно на активном листе.
Это как я переделал.
[vba]
Код
Sub Udalenie_Pustyh_Strok2()
Dim r As Long, FirstRow As Long, LastRow As Long
FirstRow = Sheets(«Все данные»).UsedRange.Row
LastRow = Sheets(«Все данные»).UsedRange.Rows.Count — 1 + Sheets(«Все данные»).UsedRange.Row
For r = LastRow To FirstRow Step -1
If Application.CountA(Rows(r)) = 0 Then
Rows(r).Delete
End If
Next r
End Sub
[/vba]
Условие макрос должен выполнятся на какой бы странице я не был, но удаление строк происходило только на листе «Все данные»
На чтение 1 мин. Просмотров 4.7k.
Что делает макрос: помогает открыть Excel-книгу на нужном листе. С этим макросом Ваши пользователи будут сразу оказываться в конкретном месте файла.
Содержание
- Как макрос работает
- Код макроса
- Как это использовать
Как макрос работает
Этот код запускается по событию рабочей книги (Open— при открытии файла) и делает активным нужный лист.
Код макроса
Private Sub Workbook_Open() 'Указываем нужный нам лист Sheets("Отчёт").Select End Sub
Как это использовать
Для реализации этого макроса, вам нужно скопировать и вставить его в код события Workbook_Open. Размещение макроса здесь позволяет запускать макрос сразу при открытии excel- файла.
- Активируйте редактор Visual Basic, нажав ALT + F11.
- В окне проекта найдите свой проект/имя рабочей книги и нажмите на знак плюс рядом с ним в чтобы увидеть все листы и модуль ЭтаКнига.
- Правой кнопкой мыши нажмите на модуле ЭтаКнига и выберите View Code
- В левой части окна выберите объект WorkBook (Excel автоматом предложит написать макрос для события Workbook_Open, если нет, то выполните п.5
- В правом выпадающем списке событие Open
Make a particular worksheet visible using a macro in Excel.
This is called activating a worksheet and is rather easy to do.
Sections:
Activate Worksheet by Name
Activate Worksheet by Index Number
Notes
Activate Worksheet by Name
Let’s navigate to, activate, the worksheet called «Sheet2».
Worksheets("Sheet2").Activate
Worksheets(«Shee2») is how we reference the sheet to which we want to navigate.
Sheet2 is the name of the sheet to which we want to navigate. Make sure to surround it with double quotation marks.
Activate is what actually takes the user to that worksheet.
Putting it all together, we get: Worksheets(«Sheet2»).Activate
It’s as simple as that.
Activate Worksheet by Index Number
This time, let’s navigate to the second worksheet using its index number.
All we do is to replace «Sheet2» from the last example with 2.
Worksheets(2).Activate
2 is the index number of the desired worksheet and Activate is what takes us to the desired worksheet.
This example can be confusing if you are not used to using index numbers, but index numbers are really helpful when you have to do something like loop through all of the worksheets in the workbook.
Notes
Basically, just reference the desired worksheet, however you want, and then type .Activate after it.
You should not use the Activate feature to navigate to a worksheet so that you can get data from it or put data into it. This is very bad Macro/VBA design and it will make your life hell later on. To get data from separate worksheets, read this tutorial: Select Data from Separate Worksheets with Macros VBA in Excel.
This feature should be used when you want the user to end up on a specific worksheet.
Make sure to download the sample file attached to this tutorial so that you can see this macro in Excel and work with it.
Similar Content on TeachExcel
Copy and Paste Data using Macro VBA in Excel
Tutorial: How to copy and paste data using a Macro in Excel. I’ll show you multiple ways to do this,…
Select Data from Separate Worksheets with Macros VBA in Excel
Tutorial: Select data from other worksheets with Macros and VBA without navigating to those workshee…
Get the Last Row using VBA in Excel
Tutorial:
(file used in the video above)
How to find the last row of data using a Macro/VBA in Exce…
Login to a Website using a Macro
: Connect and login to a website using a macro in Excel.
This allows you to open a website a…
Get the Name of a Worksheet in Macros VBA in Excel
Tutorial: How to get the name of a worksheet in Excel using VBA and Macros and also how to store tha…
Guide to Creating Charts with a Macro in Excel
Tutorial: How to add, edit, and position charts in Excel using VBA.
This tutorial covers what to do …
Subscribe for Weekly Tutorials
BONUS: subscribe now to download our Top Tutorials Ebook!
Как открыть конкретный лист в книге?
По умолчанию Excel будет запоминать ваш последний измененный рабочий лист при выходе из программы Excel каждый раз, и когда вы откроете книгу в следующий раз, этот лист будет отображаться первым. Предположим, у вас есть большая книга с сотнями листов. Можно ли находить конкретную часто используемую таблицу каждый раз при запуске файла Excel?
С помощью следующего простого кода VBA он автоматически перейдет на конкретный рабочий лист, который вы определили, независимо от того, какой рабочий лист использовался и сохранялся в последний раз.
Открыть конкретный лист в книге с кодом VBA
Автоматически открывать определенную книгу при включении Excel с помощью Kutools for Excel
Добавление книг в папку избранного с помощью вкладки Office
Открыть конкретный лист в книге с кодом VBA
Выполните следующие шаги, чтобы завершить эту задачу:
1. Откройте книгу, которую хотите использовать.
2. Удерживайте ALT + F11 , чтобы открыть Окно Microsoft Visual Basic для приложений.
3. На левой панели выберите имя книги, которую вы хотите использовать (если левая панель скрыта, щелкните Вид > Обозреватель проекта чтобы показать это), затем дважды щелкните Эта рабочая тетрадь , чтобы открыть модуль, а затем скопируйте и вставьте следующий код VBA на правой панели. Смотрите скриншот:
Private Sub Workbook_Open()
Worksheets("Mastersheet").Activate
End Sub
Примечание: В приведенном выше коде «Мастер-лист«- это имя рабочего листа, необходимого для запуска при каждом открытии книги, вы можете изменить его на свое собственное.
4. Закройте редактор VBA и сохраните книгу как Excel Macro-Enabled Workbook как показано на следующем скриншоте:
Теперь, когда вы в следующий раз откроете книгу, нажмите Включить контент, и он сразу перейдет на ваш конкретный рабочий лист. Это предупреждение не будет отображаться в более позднем процессе открытия, и ваш конкретный рабочий лист всегда будет открываться первым каждый раз.
Автоматически открывать определенную книгу при включении Excel с помощью Kutools for Excel
Если вам нужно использовать одну рабочую книгу каждый день, вы можете выбрать автоматическое открытие этого рабочего листа при включении Excel каждый раз, Kutools for Excel.
Если вы установили Kutools for Excel, просто нужно добавить книгу в Автоматически открывать эти листы в следующий раз list, то при каждом открытии Excel книга открывается одновременно .:
После бесплатная установка Kutools for Excel, пожалуйста, сделайте следующее:
1. Откройте используемую книгу и щелкните Кутулс Плюс> Workbook > Автоматически открывать эти книги в следующий раз. см. снимок экрана:
2. В появившемся диалоговом окне проверьте книгу и щелкните Ok. Затем, пока вы включаете Excel, открывается книга.
Наконечник: Если вам не нужно открывать ее в следующий раз, снимите флажок с книги в диалоговом окне, если вам больше не нужно открывать ее автоматически, выберите ее и нажмите Очистить чтобы удалить его из списка диалога.
Щелкните здесь, чтобы узнать больше об автоматическом открытии этих книг в следующий раз.
Добавление книг в папку избранного с помощью вкладки Office
Если вы просто хотите щелкнуть, найти определенные книги и открыть их, когда вам нужно, вы можете бесплатно установить Office Tab и добавьте книги в Избранное папку.
После бесплатной установки вкладки Office выполните следующие действия:
Откройте книги, которые нужно добавить в избранное, и нажмите Office Tab > Мои Избранные > Добавить все в эту группу. Смотрите скриншот:
Теперь все книги добавлены в папку «Избранное» и нажмите Office Tab > Мои Избранные стрелкой вниз чтобы выбрать книгу для открытия, если вам нужно, и если вы хотите открыть все это, нажмите Открыть эту группу.
Нажмите здесь, чтобы бесплатно загрузить Office Tab и получить 30 дней бесплатного пробного периода.
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!