Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Узнать имя активного листа - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Узнать имя активного листа (Макросы/Sub)
Узнать имя активного листа
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
 
Ответить
СообщениеЗдравствуйте, с наступающим. На данном форуме нашёл тему: Узнать имя активной таблицы (Макросы/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:35
Pelena Дата: Пятница, 06.01.2017, 18:43 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19179
Репутация: 4419 ±
Замечаний: ±

Excel 365 & Mac Excel
Здравствуйте.
[vba]
Код
ActiveSheet.Name
[/vba]
не вариант?


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЗдравствуйте.
[vba]
Код
ActiveSheet.Name
[/vba]
не вариант?

Автор - Pelena
Дата добавления - 06.01.2017 в 18:43
lapin9126 Дата: Пятница, 06.01.2017, 18:48 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Пробовал, в моём случае не подходит.
 
Ответить
СообщениеПробовал, в моём случае не подходит.

Автор - lapin9126
Дата добавления - 06.01.2017 в 18:48
Udik Дата: Пятница, 06.01.2017, 19:07 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

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

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


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com
 
Ответить
Сообщение
в моём случае не подходит

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

Автор - Udik
Дата добавления - 06.01.2017 в 19:07
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]
К сообщению приложен файл: __06.01.2017.xlsx (16.5 Kb)
 
Ответить
Сообщение[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]

Автор - lapin9126
Дата добавления - 06.01.2017 в 19:10
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
 
Ответить
СообщениеНормально имя устанавливается в sName, а ругается на то, что obj как String объявлена. Для For Each тип должен быть объект
Я конечно весь код не прогонял, но вот эта запись
ActiveWorkbook.sName. странноватая, должно быть как-то так ActiveWorkbook.worksheets(sName).

Автор - Udik
Дата добавления - 06.01.2017 в 19:25
lapin9126 Дата: Пятница, 06.01.2017, 19:33 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 0% ±

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

Автор - lapin9126
Дата добавления - 06.01.2017 в 19:33
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
 
Ответить
СообщениеНовогодние странности. :) Если по теме, проверьте код:
[vba]
Код
Sub naimlist()
Dim ИмяАктивногоЛиста$
ИмяАктивногоЛиста = ActiveSheet.Name
MsgBox ИмяАктивногоЛиста
End Sub
[/vba]

Автор - Wasilich
Дата добавления - 06.01.2017 в 19:36
lapin9126 Дата: Пятница, 06.01.2017, 19:39 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 0% ±

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

Макрос рабочий имя определяет. Но как его прикрутить к моему случаю?
 
Ответить
Сообщение
S
ub naimlist()
Dim ИмяАктивногоЛиста$
ИмяАктивногоЛиста = ActiveSheet.Name
MsgBox ИмяАктивногоЛиста
End Sub

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

Автор - lapin9126
Дата добавления - 06.01.2017 в 19:39
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
 
Ответить
СообщениеТак ведь определяет же!
[vba]
Код
Sub naimlist()
  Dim sName$
  sName = ActiveWorkbook.ActiveSheet.Name ' имя активного листа
  MsgBox sName
End Sub
[/vba] А дальше, Ваш код не по теме.

Автор - Wasilich
Дата добавления - 06.01.2017 в 19:52
nilem Дата: Пятница, 06.01.2017, 19:56 | Сообщение № 11
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 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
 
Ответить
Сообщениеа вот так не подойдет?:
[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]

Автор - nilem
Дата добавления - 06.01.2017 в 19:56
lapin9126 Дата: Пятница, 06.01.2017, 20:03 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
nilem, Спасибо то что нужно, "Краткость сестра таланта" hands
 
Ответить
Сообщениеnilem, Спасибо то что нужно, "Краткость сестра таланта" hands

Автор - lapin9126
Дата добавления - 06.01.2017 в 20:03
Wasilich Дата: Пятница, 06.01.2017, 20:13 | Сообщение № 13
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
[offtop]Короче, тема не в теме.
Хорошо что nilem экстрасенс. :D [/offtop]
 
Ответить
Сообщение[offtop]Короче, тема не в теме.
Хорошо что nilem экстрасенс. :D [/offtop]

Автор - Wasilich
Дата добавления - 06.01.2017 в 20:13
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Узнать имя активного листа (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!