Доброго дня! Подскажите, как можно узнать имя активной таблицы? Пример приложил, там 2 таблицы, в каждой по автофигуре. Выполняют следующий макрос: [vba]
Код
Sub NameTable() Set shp = ActiveSheet.Shapes(Application.Caller) On Error Resume Next ad_ = shp.TopLeftCell.Address Range(ad_).Select MsgBox (Table.Name) ' Как узнать название ктивной таблицы? End Sub
[/vba]
Доброго дня! Подскажите, как можно узнать имя активной таблицы? Пример приложил, там 2 таблицы, в каждой по автофигуре. Выполняют следующий макрос: [vba]
Код
Sub NameTable() Set shp = ActiveSheet.Shapes(Application.Caller) On Error Resume Next ad_ = shp.TopLeftCell.Address Range(ad_).Select MsgBox (Table.Name) ' Как узнать название ктивной таблицы? End Sub
Sub NameTable() Set shp = ActiveSheet.Shapes(Application.Caller) ad_ = shp.TopLeftCell.Address Range(ad_).Select For Each obj In ActiveSheet.ListObjects If obj.Active Then MsgBox obj.Name: Exit Sub Next obj End Sub
[/vba] или нажмите вкладку Работа с Таблицами-Конструктор - слева в разделе Свойства будет имя таблицы.
Или так, если нужно это имя дальше использовать: [vba]
Код
Sub NameTable() For Each obj In ActiveSheet.ListObjects If obj.Active Then nameTbl = obj.Name: Exit For Next obj Debug.Print nameTbl End Sub
[/vba]
lFJl, если просто для просмотра, можно так: [vba]
Код
Sub NameTable() Set shp = ActiveSheet.Shapes(Application.Caller) ad_ = shp.TopLeftCell.Address Range(ad_).Select For Each obj In ActiveSheet.ListObjects If obj.Active Then MsgBox obj.Name: Exit Sub Next obj End Sub
[/vba] или нажмите вкладку Работа с Таблицами-Конструктор - слева в разделе Свойства будет имя таблицы.
Или так, если нужно это имя дальше использовать: [vba]
Код
Sub NameTable() For Each obj In ActiveSheet.ListObjects If obj.Active Then nameTbl = obj.Name: Exit For Next obj Debug.Print nameTbl End Sub
Sub Test_Cell() Dim MyTable As ListObject, isect As Range For Each MyTable In ActiveSheet.ListObjects Set isect = Application.Intersect(ActiveCell, MyTable.Range) If Not (isect Is Nothing) Then MsgBox "ActiveCell принадлежит таблице " & MyTable.Name Next End Sub
[/vba]
чуть сложнее и с проверкой [vba]
Код
Sub Test_Cell() Dim MyTable As ListObject, isect As Range For Each MyTable In ActiveSheet.ListObjects Set isect = Application.Intersect(ActiveCell, MyTable.Range) If Not (isect Is Nothing) Then MsgBox "ActiveCell принадлежит таблице " & MyTable.Name Next End Sub