宏可以一次调整Excel表格中的整行

时间:2015-05-14 16:51:58

标签: vba excel-vba excel

我需要一种方法来编程调整基于ActiveCell的excel表中的整行,而不管它在哪个表或表的位置。我正在使用

ActiveSheet.ListObjects(1).ListRows(ActiveCell.Row - 1).Range.Select
Selection.Style = "Good"

但是在将表格向下移动五行时,它现在将动作从ActiveCell向下再施加五行。

我尝试过用某种- 1替换- .HeaderRowRange.Row的方法但是当我激活宏时没有任何反应。

2 个答案:

答案 0 :(得分:2)

如果我正确理解了问题,请尝试使用以下代码并报告:

ActiveSheet.ListObjects(1).ListRows(ActiveCell.Row - ActiveSheet.ListObjects(1).HeaderRowRange.Row).Range.Select

答案 1 :(得分:2)

您可以利用ActiveCell.ListObject属性。这使得它更灵活,例如,如果工作表中有两个表:

Sub FormatActiveTableRow()
Dim lo As Excel.ListObject

Set lo = ActiveCell.ListObject
If Not lo Is Nothing Then
    Intersect(ActiveCell.EntireRow, lo.Range).Style = "Good"
End If
End Sub