Тема: Обращение в макросе к текущей таблице
Если вам необходимо обратиться в макросе к текущей таблице, на одной из ячеек которой установлен курсор, то вам могут быть полезны результаты обсуждения этой проблемы в ветке: http://wordexpert.ru/forum/viewtopic.php?id=1349. В обсуждении активно участвовали эксперты форума Вождь, aap77 и Ципихович Эндрю.
Следующий макрос позволяет обратиться к текущей (активной) таблице или к первой таблице в выделении:
Sub ThisTable()
If Selection.Tables.Count <> 0 Then
'выполняем действия с первой таблицей в выделении
'например: Selection.Tables(1).Rows(1).Select
Else
MsgBox "Таблица отсутствует"
End If
End Sub
Альтернативное решение сформировано на основе макроса, предложенного в внешняя ссылка:
Sub TableNumber()
'
' Определение номера таблицы
'
Dim ThisTableIndex As Variant
ThisTableIndex = 0
'Определяем номер текущей таблицы
Dim MyRangeTable()
For i = 1 To ActiveDocument.Tables.Count
ReDim Preserve MyRangeTable(i)
Set MyRangeTable(i - 1) = ActiveDocument.Tables(i).Range
ActiveDocument.Tables(i).ID = "Table " & i
Next
For i = 1 To ActiveDocument.Tables.Count
If Selection.InRange(MyRangeTable(i - 1)) Then
ThisTableIndex = i
End If
Next
'Печать номера текущей таблицы
If ThisTableIndex <> 0 Then
MsgBox "Номер таблицы: " & ThisTableIndex, vbInformation, "Номер таблицы"
Else
MsgBox "Это не таблица", vbCritical, "Номер таблицы"
End If
End Sub
В данном макросе производится перебор всех таблиц файла и определяется номер текущей таблицы.
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.