Excel vba определить активный лист

Узнать имя активного листа

lapin9126

Дата: Пятница, 06.01.2017, 18:35 |
Сообщение № 1

Группа: Пользователи

Ранг: Новичок

Сообщений: 38


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

Здравствуйте, с наступающим. На данном форуме нашёл тему: Узнать имя активной таблицы (Макросы/Sub).
в которой предложено решение следующим макросом

Или так, если нужно это имя дальше использовать:
Sub NameTable()
For Each obj In ActiveSheet.ListObjects
If obj.Active Then nameTbl = obj.Name: Exit For
Next obj
Debug.Print nameTbl
End Sub

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

Сообщение отредактировал lapin9126Пятница, 06.01.2017, 18:36

 

Ответить

Pelena

Дата: Пятница, 06.01.2017, 18:43 |
Сообщение № 2

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

Здравствуйте.
[vba][/vba]
не вариант?


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

lapin9126

Дата: Пятница, 06.01.2017, 18:48 |
Сообщение № 3

Группа: Пользователи

Ранг: Новичок

Сообщений: 38


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

Пробовал, в моём случае не подходит.

 

Ответить

Udik

Дата: Пятница, 06.01.2017, 19:07 |
Сообщение № 4

Группа: Друзья

Ранг: Старожил

Сообщений: 1588


Репутация:

192

±

Замечаний:
0% ±


Excel 2016 х 64

в моём случае не подходит

Везде работает а у Вас нет, тогда показывайте файл где не работает.


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com

 

Ответить

lapin9126

Дата: Пятница, 06.01.2017, 19:10 |
Сообщение № 5

Группа: Пользователи

Ранг: Новичок

Сообщений: 38


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

[vba]

Код

Sub Сортировка_2()
ActiveWorkbook.CheckCompatibility = False ‘ отменяем проверку совместимости
‘—————————————————————————-
    Dim sName, obj As String
    sName = ActiveWorkbook.ActiveSheet.Name ‘ имя активного листа
‘—————————————————————————-
    For Each obj In sName.ListObjects ‘ получение имя активной таблицы
        If obj.Active Then nameTbl = obj.Name: Exit For
    Next obj
    Debug.Print nameTbl
‘—————————————————————————-
ActiveWorkbook.sName.ListObjects(obj).Sort. _
        SortFields.Clear
    ActiveWorkbook.sName.ListObjects(obj).Sort. _
        SortFields.Add Key:=Range(«obj[Group]»), SortOn:= _
        xlSortOnValues, Order:=xlAscending, CustomOrder:= _
        «КУПЛЮ :,ПРОДАМ :,АРЕНДА :,НЕДВИЖИМОСТЬ :,ТРАНСПОРТ :,УСЛУГИ :,РАБОТА :,РАЗНОЕ :» _
        , DataOption:=xlSortNormal
    With ActiveWorkbook.sName.ListObjects.obj.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

[/vba]

 

Ответить

Udik

Дата: Пятница, 06.01.2017, 19:25 |
Сообщение № 6

Группа: Друзья

Ранг: Старожил

Сообщений: 1588


Репутация:

192

±

Замечаний:
0% ±


Excel 2016 х 64

Нормально имя устанавливается в sName, а ругается на то, что obj как String объявлена. Для For Each тип должен быть объект
Я конечно весь код не прогонял, но вот эта запись
ActiveWorkbook.sName. странноватая, должно быть как-то так ActiveWorkbook.worksheets(sName).


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com

Сообщение отредактировал UdikПятница, 06.01.2017, 19:31

 

Ответить

lapin9126

Дата: Пятница, 06.01.2017, 19:33 |
Сообщение № 7

Группа: Пользователи

Ранг: Новичок

Сообщений: 38


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

Спасибо, придётся создавать новую тему, чтобы не получить предупреждение, за второй вопрос в этой теме. :(

 

Ответить

Wasilich

Дата: Пятница, 06.01.2017, 19:36 |
Сообщение № 8

Группа: Друзья

Ранг: Старожил

Сообщений: 1232


Репутация:

326

±

Замечаний:
0% ±


2003

Новогодние странности. :) Если по теме, проверьте код:
[vba]

Код

Sub naimlist()
Dim ИмяАктивногоЛиста$
ИмяАктивногоЛиста = ActiveSheet.Name
MsgBox ИмяАктивногоЛиста
End Sub

[/vba]

Сообщение отредактировал WasilichПятница, 06.01.2017, 19:40

 

Ответить

lapin9126

Дата: Пятница, 06.01.2017, 19:39 |
Сообщение № 9

Группа: Пользователи

Ранг: Новичок

Сообщений: 38


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

S
ub naimlist()
Dim ИмяАктивногоЛиста$
ИмяАктивногоЛиста = ActiveSheet.Name
MsgBox ИмяАктивногоЛиста
End Sub

Макрос рабочий имя определяет. Но как его прикрутить к моему случаю?

 

Ответить

Wasilich

Дата: Пятница, 06.01.2017, 19:52 |
Сообщение № 10

Группа: Друзья

Ранг: Старожил

Сообщений: 1232


Репутация:

326

±

Замечаний:
0% ±


2003

Так ведь определяет же!
[vba]

Код

Sub naimlist()
  Dim sName$
  sName = ActiveWorkbook.ActiveSheet.Name ‘ имя активного листа
  MsgBox sName
End Sub

[/vba] А дальше, Ваш код не по теме.

Сообщение отредактировал WasilichПятница, 06.01.2017, 20:14

 

Ответить

nilem

Дата: Пятница, 06.01.2017, 19:56 |
Сообщение № 11

Группа: Авторы

Ранг: Старожил

Сообщений: 1612


Репутация:

563

±

Замечаний:
0% ±


Excel 2013, 2016

а вот так не подойдет?:
[vba]

Код

Sub Сортировка_2()
With ActiveSheet.ListObjects(1)
    .Sort.SortFields.Clear
    .Sort.SortFields.Add Key:=.Range.Columns(9), SortOn:= _
                         xlSortOnValues, Order:=xlAscending, CustomOrder:= _
                         «КУПЛЮ :,ПРОДАМ :,АРЕНДА :,НЕДВИЖИМОСТЬ :,ТРАНСПОРТ :,УСЛУГИ :,РАБОТА :,РАЗНОЕ :» _
                         , DataOption:=xlSortNormal
    With .Sort
        .Header = xlYes
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End With
End Sub

[/vba]


Яндекс.Деньги 4100159601573

 

Ответить

lapin9126

Дата: Пятница, 06.01.2017, 20:03 |
Сообщение № 12

Группа: Пользователи

Ранг: Новичок

Сообщений: 38


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

nilem, Спасибо то что нужно, «Краткость сестра таланта» hands

 

Ответить

Wasilich

Дата: Пятница, 06.01.2017, 20:13 |
Сообщение № 13

Группа: Друзья

Ранг: Старожил

Сообщений: 1232


Репутация:

326

±

Замечаний:
0% ±


2003

[offtop]Короче, тема не в теме.
Хорошо что nilem экстрасенс. :D [/offtop]

 

Ответить

Содержание

  • ActiveSheet
  • Выбранные листы против ActiveSheet
  • Выберите рабочий лист
  • Дополнительные примеры активации / выбора листов

В этой статье будет обсуждаться объект ActiveSheet в VBA. Также будет обсуждаться, как активировать, выбирать и переходить к рабочим листам (и многое другое). Прочтите наше полное руководство по рабочим листам VBA для получения дополнительной информации о работе с рабочими листами в VBA.

В VBA ActiveSheet относится к текущему активному рабочему листу. Одновременно может быть активен только один лист.

Активировать рабочий лист (настройка ActiveSheet)

Чтобы установить ActiveSheet, используйте Worksheet.Activate:

1 Рабочие листы («Ввод»). Активировать

Команда «Активировать лист» фактически «перейдет» к листу, изменив видимый лист.

В приведенном выше примере используется имя листа (вкладка). Вместо этого вы можете использовать кодовое имя VBA для рабочего листа:

Имя ActiveSheet

Чтобы получить имя ActiveSheet:

1 msgbox ActiveSheet.name

Выбранные листы против ActiveSheet

В любой момент времени ActiveSheet может быть только один лист. Однако можно выбрать сразу несколько листов.

Когда выбрано несколько листов, активным считается только самый верхний лист (ActiveSheet).

Выберите рабочий лист

Если вы хотите выбрать лист вместо его активации. Вместо этого используйте .Select.

Выбрать лист по имени вкладки

Это выбирает рабочий лист на основе его имени вкладки листа

1 Таблицы («Ввод»). Выбрать

Выбрать лист по порядковому номеру

Это выбирает рабочий лист на основе его положения относительно других вкладок.

1 Рабочие листы (1) .Выбрать

Выберите рабочий лист с кодовым именем VBA

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

Выбрать текущий лист

Чтобы выбрать текущий рабочий лист, используйте объект ActiveSheet:

Дополнительные примеры активации / выбора листов

Установите ActiveSheet на переменную

Это назначит ActiveSheet переменной объекта рабочего листа.

123 Dim ws как рабочий листУстановить ws = ActiveSheet

Изменить имя ActiveSheet

Это изменит имя ActiveSheet.

1 ActiveSheet.Name = «NewName»

С ActiveSheet

Использование оператора With позволяет оптимизировать код при работе с объектами (такими как листы или ActiveSheet).

12345 С ActiveSheet.Name = «StartFresh».Cells.Clear.Range («A1»). Value = .NameКонец с

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

Перебирать выбранные листы

Следующий макрос будет проходить по всем выбранным листам, отображая их имена.

12345678 Sub GetSelectedSheetsName ()Dim ws как рабочий листДля каждого ws в ActiveWindow.SelectedSheetsMsgBox ws.NameСледующий wsКонец подписки

Перейти к следующему листу

Этот код перейдет на следующий лист. Если ActiveSheet является последним листом, он перейдет к первому листу в рабочей книге.

12345 Если ActiveSheet.Index = Worksheets.Count, тоРабочие листы (1) .АктивироватьЕщеActiveSheet.Next.ActivateКонец, если

Вы поможете развитию сайта, поделившись страницей с друзьями

Обращение к рабочим листам Excel из кода VBA. Переименование листов, скрытие и отображение с помощью кода VBA Excel. Свойства Worksheets.Name и Worksheets.Visible.

Обращение к рабочим листам

Рабочий лист (Worksheet) принадлежит коллекции всех рабочих листов (Worksheets) книги Excel. Обратиться к листу можно как к элементу коллекции и, напрямую, по его уникальному имени.

Откройте редактор VBA и обратите внимание на вашу книгу в проводнике, где уникальные имена листов указаны без скобок, а в скобках — имена листов, отображаемые на ярлычках в открытой книге Excel. Уникальные имена листов отсортированы по алфавиту и их расположение по порядку не будет соответствовать их индексам (номерам), если листы перемещались по отношению друг к другу. Индексы листов смотрите по порядку расположения ярлычков в открытой книге. Переместили листы — изменились их индексы.

Обращение к рабочему листу в коде VBA Excel:

‘По уникальному имени

УникИмяЛиста

‘По индексу

Worksheets(N)

‘По имени листа на ярлычке

Worksheets(«Имя листа»)

  • УникИмяЛиста — уникальное имя листа, отображаемое в проводнике редактора VBA без скобок, с помощью кода VBA изменить его невозможно.
  • N — индекс листа от 1 до количества всех листов в книге, соответствует порядковому номеру ярлычка этого листа в открытой книге Excel.
  • Имя листа — имя листа, отображаемое в проводнике редактора VBA в скобках, с помощью кода VBA изменить его можно.

Количество листов в рабочей книге Excel определяется так:

‘В активной книге

Worksheets.Count

‘В любой открытой книге,

‘например, в «Книга1.xlsm»

Workbooks(«Книга1.xlsm»).Worksheets.Count

Переименование листов

В VBA Excel есть некоторые особенности в наименовании листов, так как у рабочего листа есть два свойства, связанных с именем: (Name) и Name. Откройте окно «Properties» в редакторе VBA, нажав клавишу «F4», и выделите любой лист в проводнике. Вы увидите, что в окне «Properties» свойству (Name) в скобках соответствует в проводнике уникальное имя листа без скобок, а свойству Name без скобок соответствует изменяемое имя листа в скобках. Оба имени в окне «Properties» можно редактировать.

С помощью кода VBA Excel можно редактировать только имя листа Name, отображаемое на ярлычке листа и в проводнике без скобок. Для этого используется свойство рабочего листа Worksheets.Name со следующим синтаксисом:

expression.Name

где expression — переменная, представляющая собой объект Worksheet. Смена имени осуществляется путем присвоения нового значения свойству Worksheets.Name.

Допустим, у нас есть лист с уникальным именем (Name) — Лист1, индексом — 1 и именем Name — МойЛист, которое необходимо заменить на имя — Реестр.

Лист1.Name = «Реестр»

Worksheets(1).Name = «Реестр»

Worksheets(«МойЛист»).Name = «Реестр»

Скрытие и отображение листов

Для скрытия и отображения рабочих листов в VBA Excel используется свойство Worksheet.Visible со следующим синтаксисом:

expression.Visible

где expression — переменная, представляющая собой объект Worksheet. Свойству Worksheet.Visible могут присваиваться следующие значения:

  • False — лист становится невидимым, но он будет присутствовать в списке скрытых листов, и пользователь сможет его отобразить с помощью инструментов рабочей книги Excel.
  • xlVeryHidden — лист становится супер невидимым и его не будет в списке скрытых листов, пользователь не сможет его отобразить. Актуально для Excel 2003-2016.
  • True — лист становится видимым.

Аналоги присваиваемых значений:

  • False = xlHidden = xlSheetHidden = 1
  • xlVeryHidden = xlSheetVeryHidden = 2
  • True = xlSheetVisible = -1 (константа xlVisible вызывает ошибку)

Примеры:

Лист1.Visible = xlSheetHidden

Лист2.Visible = 1

Worksheets(Worksheets.Count).Visible = xlVeryHidden

Worksheets(«МойЛист»).Visible = True

Как создать, скопировать, переместить или удалить рабочий лист с помощью кода VBA Excel, смотрите в этой статье.

Содержание

  1. VBA в Excel Объект Excel.Worksheet и программная работа с листами Excel средствами VBA
  2. 10.5 Коллекция Sheets и объект Worksheet, их свойства и методы
  3. VBA Выбрать лист, активировать лист и получить активный лист
  4. ActiveSheet
  5. Активировать рабочий лист (настройка ActiveSheet)
  6. Имя ActiveSheet
  7. Выбранные листы против ActiveSheet
  8. Выберите рабочий лист
  9. Выбрать лист по имени вкладки
  10. Выбрать лист по порядковому номеру
  11. Выберите рабочий лист с кодовым именем VBA
  12. Выбрать текущий лист
  13. Дополнительные примеры активации / выбора листов
  14. Установите ActiveSheet на переменную
  15. Изменить имя ActiveSheet
  16. С ActiveSheet
  17. Перебирать выбранные листы
  18. Перейти к следующему листу
  19. Vba excel определить имя активного листа

VBA в Excel Объект Excel.Worksheet и программная работа с листами Excel средствами VBA

10.5 Коллекция Sheets и объект Worksheet, их свойства и методы

Объект Excel.Worksheet, программное создание, обнаружение, удаление листа Excel средствами VBA, свойства, методы и события объекта Excel.Worksheet

В Word ниже объекта Application и Document начинались уже объекты непосредственно для работы с текстом — Selection, Range и т.п. В Excel между объектом рабочей книги и ячейками есть еще один промежуточный объект — объект Worksheet (лист). Объекты Worksheet в книге объединены в коллекцию Sheets.

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

Процесс создания выглядит очень просто:

Dim oExcel As New Excel.Application ‘Запускаем Excel

oExcel.Visible = True ‘Делаем его видимым

Dim oWbk As Excel.Workbook

Set oWbk = oExcel.Workbooks.Add () ‘Создаем новую книгу

Dim oSheet As Excel.Worksheet

Set oSheet = oWbk.Worksheets.Add() ‘ Создаем новый лист

oSheet.Name = «Новый лист» ‘Присваиваем ему имя «Новый лист»

Метод Add() для коллекции Worksheets принимает несколько необязательных параметров, главная задача которых — определить, между какими существующими листами будет вставлен новый лист. Если ничего не указывать, то новый лист будет помещен самым первым.

Часто встречается и другая задача — просто найти нужный лист среди листов книги, например, если мы открыли существующую книгу. Сделать это очень просто, поскольку коллекция Worksheets умеет работать с именами листов. Ниже приведен пример, в котором мы так же запускаем Excel и создаем новую книгу, но при этом находим лист с именем «Лист1» и переименовываем его в «Новый лист»:

Dim oExcel As New Excel.Application ‘Запускаем Excel

oExcel.Visible = True ‘Делаем его видимым

Dim oWbk As Excel.Workbook

Set oWbk = oExcel.Workbooks.Add() ‘Создаем новую книгу

Dim oSheet As Excel.Worksheet

Set oSheet = oWbk.Worksheets.Item(«Лист 1») ‘ Находим Лист1

oSheet.Name = «Новый лист» ‘Присваиваем ему имя «Новый лист»

Обратите внимание, что в английской версии Excel этот код, скорее всего, не пройдет, поскольку листы там по умолчанию называются «Sheet1», «Sheet2» и т.п. Если вы в вашем коде используете имена листов по умолчанию и при этом вашей программе придется работать на компьютерах с разноязычными версиями Excel, обязательно предусмотрите дополнительные проверки или просто используйте номера листов вместо их имен.

У коллекции Sheets, помимо привычных нам свойств и методов ( Count, Item, Add(), Delete()) и свойств и методов, которые удобнее применять для объекта Worksheet ( Visible(), Copy(), Move(), PrintOut(), PrintPreview(), Select()) — поскольку все равно указывать конкретный лист — есть и один специфический метод FillAcrossSheets() — скопировать объект диапазона Range (варианты: полностью, только содержимое, только оформление) во все листы данной книги.

У объекта Worksheet — множество важных свойств и методов:

  • Cells — одно из наиболее часто используемых свойств объекта Worksheet. Работает точно так же, как и рассмотренное выше одноименное свойство объекта Application — за исключением того, что вам больше не нужно ограничиваться только активным листом. Аналогично работают свойства Columns и Rows.
  • EnableCalculation — возможность отключить автоматический пересчет значений ячеек в книге.
  • EnableSelection — возможность запретить выделять на листе: все, ничего не запрещать, или разрешить выделять только незаблокированные ячейки.
  • Next — возможность получить ссылку на следующий лист в книге. Previous — то же самое для предыдущего листа.
  • PageSetup — как и в Word, возможность получить объект PageSetup, при помощи которого можно настроить те же параметры, что и через меню Файл ->Параметры страницы.
  • свойство Protection позволяет получить объект Protection, при помощи которого можно запретить пользователю вносить изменения в лист Excel. Настройке параметров защиты также служат и другие свойства, названия которых начинаются на Protection.
  • QueryTables — исключительно важное свойство. Оно возвращает коллекцию QueryTables — набор объектов QueryTable, которые, в свою очередь, представляют данные, полученные из внешних источников (как правило, из баз данных).
  • Range — самое важное свойство объекта Worksheet. Возвращает объект Range (диапазон ячеек), который в объектной модели Excel занимает примерно такое же место, что и одноименный объект в объектной модели Word. Этот объект будет рассматриваться ниже.
  • Type — возможность определить тип данного листа. Обычно используются два типа: xlWorksheet (обычный лист) и xlChart (диаграмма).
  • UsedRange — возвращает объект Range, представляющий собой прямоугольную область, включающую все непустые ячейки. Удобно для целей копирования или форматирования.
  • Visible — возможность спрятать лист с глаз пользователя (например, если он используется для служебных целей).

Некоторые важные методы объекта Worksheet:

  • методы Activate() , Calculate(), Copy(), Paste(), Delete(), Move(), Evaluate(), Select(), SaveAs(), PrintOut(), PrintPreview(), Protect(), Unprotect()нам уже знакомы . Отличие заключается только в том, что теперь эти методы могут применяться для выбранного вами листа.
  • метод PivotTables() возвращает коллекцию очень интересных объектов PivotTable (сводная таблица), которые будут рассматриваться ниже;
  • метод Scenarios() возвращает коллекцию Scenarios, состоящую из объектов Scenario (сценарии). Сценарии — это именованные наборы вводных данных, которые можно использовать для проверки различных сценариев (разные суммы продаж, уровни налогов, расходов и т.п.)
  • SetBackgroundPicture() — возможность назначить листу фоновое изображение (естественно, желательно, чтобы оно было полупрозрачное — «водяной знак», иначе на его фоне будет трудно читать текст в ячейках).
  • ShowAllData() — показать все скрытые и отфильтрованные данные на листе.

Самое важное событие объекта Worksheet — это, конечно, Change. Существует множество практических задач, когда изменение пользователем значения ячейки должно приводить к изменению значения в ячейке другого листа/рабочей книги Excel или даже в базе данных. Другая ситуация, в которой используется это события — сложная проверка вводимого пользователем значения (например, опять-таки через обращение к базе данных). Эта событийная процедура работает со специальным параметром Target — то есть объектом Range, представляющим изменившуюся ячейку. При помощи свойств и методов объекта Range вы можете получить информацию об изменившемся значении, столбце и строке, в котором произошло изменение и т.п.

У объекта Worksheet есть еще два очень удобных события (их сильно не хватает объекту Document в Word). Это — события BeforeRightClick() и BeforeDoubleClick(). Как понятно из названия, первое событие позволяет перехватывать щелчок правой кнопкой мыши по любому месту в листе, а второе — двойной щелчок мышью. При помощи этих событий вы можете назначить свою реакцию (открытие контекстных меню, выдачу предупреждающих сообщений, переход в другой режим работы и т.п.) на действия пользователя.

Источник

VBA Выбрать лист, активировать лист и получить активный лист

В этой статье будет обсуждаться объект ActiveSheet в VBA. Также будет обсуждаться, как активировать, выбирать и переходить к рабочим листам (и многое другое). Прочтите наше полное руководство по рабочим листам VBA для получения дополнительной информации о работе с рабочими листами в VBA.

ActiveSheet

В VBA ActiveSheet относится к текущему активному рабочему листу. Одновременно может быть активен только один лист.

Активировать рабочий лист (настройка ActiveSheet)

Чтобы установить ActiveSheet, используйте Worksheet.Activate:

1 Рабочие листы («Ввод»). Активировать

Команда «Активировать лист» фактически «перейдет» к листу, изменив видимый лист.

В приведенном выше примере используется имя листа (вкладка). Вместо этого вы можете использовать кодовое имя VBA для рабочего листа:

Имя ActiveSheet

Чтобы получить имя ActiveSheet:

1 msgbox ActiveSheet.name

Выбранные листы против ActiveSheet

В любой момент времени ActiveSheet может быть только один лист. Однако можно выбрать сразу несколько листов.

Когда выбрано несколько листов, активным считается только самый верхний лист (ActiveSheet).

Выберите рабочий лист

Если вы хотите выбрать лист вместо его активации. Вместо этого используйте .Select.

Выбрать лист по имени вкладки

Это выбирает рабочий лист на основе его имени вкладки листа

1 Таблицы («Ввод»). Выбрать

Выбрать лист по порядковому номеру

Это выбирает рабочий лист на основе его положения относительно других вкладок.

1 Рабочие листы (1) .Выбрать

Выберите рабочий лист с кодовым именем VBA

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

Выбрать текущий лист

Чтобы выбрать текущий рабочий лист, используйте объект ActiveSheet:

Дополнительные примеры активации / выбора листов

Установите ActiveSheet на переменную

Это назначит ActiveSheet переменной объекта рабочего листа.

123 Dim ws как рабочий листУстановить ws = ActiveSheet

Изменить имя ActiveSheet

Это изменит имя ActiveSheet.

1 ActiveSheet.Name = «NewName»

С ActiveSheet

Использование оператора With позволяет оптимизировать код при работе с объектами (такими как листы или ActiveSheet).

12345 С ActiveSheet.Name = «StartFresh».Cells.Clear.Range («A1»). Value = .NameКонец с

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

Перебирать выбранные листы

Следующий макрос будет проходить по всем выбранным листам, отображая их имена.

12345678 Sub GetSelectedSheetsName ()Dim ws как рабочий листДля каждого ws в ActiveWindow.SelectedSheetsMsgBox ws.NameСледующий wsКонец подписки

Перейти к следующему листу

Этот код перейдет на следующий лист. Если ActiveSheet является последним листом, он перейдет к первому листу в рабочей книге.

Источник

Vba excel определить имя активного листа

Подскажите, пожалуйста, существует ли какой-нибудь способ получить имя листа Excel в VBA?

Интересует не название ярлычка, а именно имя объекта, по которому происходит обращение к этому листу в VBA — см. скриншот ниже: здесь Title — это та надпись, которая выводится на ярлыке листа Excel, а shtTitle — имя самого листа, по которому происходит обращение к этому самому листу. Вот это самое shtTitle и нужно получить в VBA.

Заранее спасибо за любую помощь или хотя бы наводку в какую сторону копать.

Подскажите, пожалуйста, существует ли какой-нибудь способ получить имя листа Excel в VBA?

Интересует не название ярлычка, а именно имя объекта, по которому происходит обращение к этому листу в VBA — см. скриншот ниже: здесь Title — это та надпись, которая выводится на ярлыке листа Excel, а shtTitle — имя самого листа, по которому происходит обращение к этому самому листу. Вот это самое shtTitle и нужно получить в VBA.

Заранее спасибо за любую помощь или хотя бы наводку в какую сторону копать.

Samaretz

Благодарность можно отправить на Яндекс-кошелек: 410011414293115

Ответить

Сообщение Приветствую, господа!

Подскажите, пожалуйста, существует ли какой-нибудь способ получить имя листа Excel в VBA?

Интересует не название ярлычка, а именно имя объекта, по которому происходит обращение к этому листу в VBA — см. скриншот ниже: здесь Title — это та надпись, которая выводится на ярлыке листа Excel, а shtTitle — имя самого листа, по которому происходит обращение к этому самому листу. Вот это самое shtTitle и нужно получить в VBA.

Заранее спасибо за любую помощь или хотя бы наводку в какую сторону копать.

Автор — Samaretz
Дата добавления — 19.03.2015 в 15:45

Источник

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