Вот пример способа ссылки на таблицу
Sub LineFormatSynch()
Dim cl As Range
Dim lst As ListObject
Dim rw As Range
Set cl = ActiveCell
Set lst = cl.ListObject
If Not lst Is Nothing Then ' in case ActiveCell is not in a table
Set rw = lst.DataBodyRange.Rows(cl.Row - lst.DataBodyRange.Row + 1)
With rw
.Font.Size = cl.Font.Size
.Font.Name = cl.Font.Name
.Font.Color = cl.Font.Color
.HorizontalAlignment = cl.HorizontalAlignment
.VerticalAlignment = cl.VerticalAlignment
End With
End If
End Sub
Редактировать:
Чтобы использовать, выберите ячейку, которую вы хотите использовать в качестве формата шаблонадля строки, затем запустите макрос.Он будет:
- Определить, находится ли активная ячейка в таблице.
- Установить ссылку на строку, в которой находится выбранная ячейка
- Применить форматОтобранная ячейка для всех ячеек в одной строке таблицы
Set lst = cl.ListObject
предоставляет ссылку на таблицу
Если cl
отсутствует в таблице, lst
будет установлен вNothing
lst.DataBodyRange
предоставляет ссылку на данные таблицы (исключая строку заголовка)
Set rw = ...
устанавливает ссылку на строку таблицы, содержащую активную ячейку
Пять строк внутри With
Скопируйте свойства из cl
во все ячейки в rw
Кстати, это проверено в Excel 2010, если ваша версия отличается, могут быть некоторые различия, дайте мне знать
Редактировать 2:
Для общего диапазона листа, который просто выглядит как таблица, рассмотрим:
Sub LineFormatSynch()
Dim cl As Range
Dim lst As Range
Dim rw As Range
Set cl = ActiveCell
Set lst = cl.CurrentRegion
If Not lst Is Nothing Then
Set rw = lst.Rows(cl.Row - lst.Row + 1)
With rw
.Font.Size = cl.Font.Size
.Font.Name = cl.Font.Name
.Font.Color = cl.Font.Color
.HorizontalAlignment = cl.HorizontalAlignment
.VerticalAlignment = cl.VerticalAlignment
End With
End If
End Sub
Текущий регион являетсядиапазон, ограниченный любой комбинацией пустых строк и пустых столбцов