突出显示select错误的单元格行

我有我的Excel工作表的这个代码。 它会突出显示所选行的表格行,但是如果您将表格中的单元格突出显示在外部,或者将切片器放在表格中,则会出现问题。 在这里,我使用的模块:

Option Explicit Public Sub HighlightTableRow(Target As Excel.Range) Dim t As ListObject Dim lngInTable As Long Dim c As Long Const COLOR_SELECT = xlThemeColorAccent1 Const COLOR_LIGHTER = 0.4 On Error Resume Next If Target.Interior.Pattern = xlPatternSolid Then Exit Sub For Each t In Target.Parent.ListObjects c = c + 1 If Not Intersect(Target, t.DataBodyRange) Is Nothing Then lngInTable = c End If t.Range.Interior.Pattern = xlNone Next If lngInTable = 0 Then Exit Sub With Target.Parent.ListObjects(lngInTable) With .Range.Interior .Pattern = xlNone .TintAndShade = 0 .PatternTintAndShade = 0 End With With .DataBodyRange With .Resize(Target.Rows.Count).Offset(Target.Row - .Row).Interior .ThemeColor = COLOR_SELECT .TintAndShade = 1 - COLOR_LIGHTER End With End With End With End Sub 

我把这个代码放在每个Excel工作表中,这样代码工作:

 Private Sub Worksheet_SelectionChange(ByVal Target As Range) On Error Resume Next HighlightTableRow Target End Sub 

我不知道如何解决这个错误。 格式化很奇怪。 有任何想法吗?