Excel макрос на конкретный лист

 

FusionBY

Пользователь

Сообщений: 18
Регистрация: 21.04.2015

Добрый день. В очередной раз ищу помощи сообщества. Такой вопрос,макрос сейчас выполняется по нажатию кнопки на конкретной странице. Идея состоит в том, чтобы макрос выполнялся не по нажатию, а при открытии книги. Поместить его в Private Sub Workbook_Open() не составило труда, однако макрос будет работать корректно только если книга откроется на нужном листе. Открываться книга конечно же будет на другом листе с расчетами, а курсы будут подставляться через функцию ВПР, помогите указать абсолютный путь исполнения макроса.

P.S. Это нужно для того, чтобы Пользователь не запаривался о том, как обновляются циферки на странице и просто получал данные.

 

The_Prist

Пользователь

Сообщений: 14181
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

#2

20.05.2015 15:31:22

Как обратиться к диапазону из VBA

Кратко:

Код
Sheets("ИмяЛиста").Cells(1,1).Value = ""
Sheets("ИмяЛиста").Range("A1").Value = ""

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Слэн

Пользователь

Сообщений: 5192
Регистрация: 16.01.2013

#3

20.05.2015 15:45:32

у листа есть так называемое кодовое имя — вот по нему и можно обращаться
преимущество — не может быть изменено неквалифицированным пользователем( да и ни к чему ему)
минус — могут быть проблемы локализации — кодовые имена «переводятся». можно избежать этой проблемы заранее назвав лист( дав кодовое имя) на латинице.

пример:

Код
Лист1.cells(1).value

Живи и дай жить..

 

Слэн

Пользователь

Сообщений: 5192
Регистрация: 16.01.2013

самый малозатратный метод — в начале макроса запомнить текущий лист, перейти на нужный, отработать(без изменения кода), восстановить активность прежнего листа

 

FusionBY

Пользователь

Сообщений: 18
Регистрация: 21.04.2015

А можно по подробнее о последнем методе?

 

Scripter

Пользователь

Сообщений: 255
Регистрация: 06.02.2014

#6

21.05.2015 04:58:55

В дополнении к перечисленным

Код
Sheets("ИмяЛиста").[A1].Value
 

FusionBY

Пользователь

Сообщений: 18
Регистрация: 21.04.2015

Что-то я не совсем понимаю, к чему можно прикрутить «Sheets(«ИмяЛиста»).[A1].Value». Если я правильно понял, самый малозатратный метод будет работать следующим образом:
— Открывается книга
— Запоминается наименование текущего листа
— Осуществляется переход на лист где выполняется основной макрос. (экспорт курсов валют)
— Возврат к исходному листу, с которого открылась книга.

Как это осуществить?

 

Hugo

Пользователь

Сообщений: 23249
Регистрация: 22.12.2012

Зачем вообще переходить на другой лист, если нужно возвращаться? Без перехода всё обычно можно сделать (за редким исключением, что есть глюк экселя, сталкивался).

 

FusionBY

Пользователь

Сообщений: 18
Регистрация: 21.04.2015

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

 

Hugo

Пользователь

Сообщений: 23249
Регистрация: 22.12.2012

#10

21.05.2015 12:35:07

Да ничего сложного:

Код
    Dim r As Object
    '...
    Set r = ActiveSheet
    '...
    r.Select

P.S. И чего это r? Обычно sh! Хотя разницы нет. :)

Изменено: Hugo21.05.2015 12:38:22

 

FusionBY

Пользователь

Сообщений: 18
Регистрация: 21.04.2015

Спасибо. Действительно все очень не сложно оказалось. Может быть вы любезно согласитесь глянуть где я допустил ошибку и почему не работает первый метод? Код идентичный, как при нажатии на кнопку, так и при запуске книги. Однако курсы обновляются только через «button». При открытие появляется только табличка «Готово»!

 

Hugo

Пользователь

Сообщений: 23249
Регистрация: 22.12.2012

#12

21.05.2015 13:09:52

Вообще-то модуль книги — «стрёмное» место…
Попробуйте разместить код в модуле, ну а вызывать его можно по событию книги.

P.S. Беда сидит в строке

Код
x1 = Sheets("Беларусь").Cells(2, i).Value 'невядомая валюта

Тут дописал лист.

Изменено: Hugo21.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-книгу на нужном листе. С этим макросом Ваши пользователи будут сразу оказываться в конкретном месте файла.

Содержание

  1. Как макрос работает
  2. Код макроса
  3. Как это использовать

Как макрос работает

Этот код запускается по событию рабочей книги (Open— при открытии файла) и делает активным нужный лист.

Код макроса

Private Sub Workbook_Open()
'Указываем нужный нам лист
Sheets("Отчёт").Select
End Sub

Как это использовать

Для реализации этого макроса, вам нужно скопировать и вставить его в код события Workbook_Open. Размещение макроса здесь позволяет запускать макрос сразу при открытии excel- файла.

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. В окне проекта найдите свой проект/имя рабочей книги и нажмите на знак плюс рядом с ним в чтобы увидеть все листы и модуль ЭтаКнига.
  3. Правой кнопкой мыши нажмите на модуле ЭтаКнига и выберите View Code
  4. В левой части окна выберите объект WorkBook (Excel автоматом предложит написать макрос для события Workbook_Open, если нет, то выполните п.5
  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

08008f3433d614b4eb713fdcde4e01eb.jpg

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

3e8969b16e6f131afc29445b0f9a02ac.jpg

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 хорошая идея3

Добавление книг в папку избранного с помощью вкладки Office хорошая идея3


Открыть конкретный лист в книге с кодом VBA

Выполните следующие шаги, чтобы завершить эту задачу:

1. Откройте книгу, которую хотите использовать.

2. Удерживайте ALT + F11 , чтобы открыть Окно Microsoft Visual Basic для приложений.

3. На левой панели выберите имя книги, которую вы хотите использовать (если левая панель скрыта, щелкните Вид > Обозреватель проекта чтобы показать это), затем дважды щелкните Эта рабочая тетрадь , чтобы открыть модуль, а затем скопируйте и вставьте следующий код VBA на правой панели. Смотрите скриншот:

Private Sub Workbook_Open() 
Worksheets("Mastersheet").Activate
End Sub

doc-open-specific-sheet1

Примечание: В приведенном выше коде «Мастер-лист«- это имя рабочего листа, необходимого для запуска при каждом открытии книги, вы можете изменить его на свое собственное.

4. Закройте редактор VBA и сохраните книгу как Excel Macro-Enabled Workbook как показано на следующем скриншоте:

doc-open-specific-sheet1

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

doc-open-specific-sheet1


Автоматически открывать определенную книгу при включении Excel с помощью Kutools for Excel

Если вам нужно использовать одну рабочую книгу каждый день, вы можете выбрать автоматическое открытие этого рабочего листа при включении Excel каждый раз, Kutools for Excel.

Если вы установили Kutools for Excel, просто нужно добавить книгу в Автоматически открывать эти листы в следующий раз list, то при каждом открытии Excel книга открывается одновременно .:

После бесплатная установка Kutools for Excel, пожалуйста, сделайте следующее:

1. Откройте используемую книгу и щелкните Кутулс Плюс> Workbook > Автоматически открывать эти книги в следующий раз. см. снимок экрана:

док ктэ 1

2. В появившемся диалоговом окне проверьте книгу и щелкните Ok. Затем, пока вы включаете Excel, открывается книга.

док ктэ 2

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

Щелкните здесь, чтобы узнать больше об автоматическом открытии этих книг в следующий раз.


Добавление книг в папку избранного с помощью вкладки Office

Если вы просто хотите щелкнуть, найти определенные книги и открыть их, когда вам нужно, вы можете бесплатно установить Office Tab и добавьте книги в Избранное папку.

После бесплатной установки вкладки Office выполните следующие действия:

Откройте книги, которые нужно добавить в избранное, и нажмите Office Tab > Мои Избранные > Добавить все в эту группу. Смотрите скриншот:

док от 1

Теперь все книги добавлены в папку «Избранное» и нажмите Office Tab > Мои Избранные  стрелкой вниз чтобы выбрать книгу для открытия, если вам нужно, и если вы хотите открыть все это, нажмите Открыть эту группу.

док от 2

Нажмите здесь, чтобы бесплатно загрузить Office Tab и получить 30 дней бесплатного пробного периода.


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Понравилась статья? Поделить с друзьями:
  • Excel макрос на каком языке
  • Excel макрос на защищенном листе
  • Excel макрос на защиту всех листов с паролем
  • Excel макрос на добавление ячейки
  • Excel макрос на добавление строки в таблицу