2016-04-09 18 views

Antwort

2

nativen Tabellenfunktionen Mit Hilfe einer einfachen Formel zu konstruieren, können Sie die relative Zeilenposition innerhalb der Listobject (aka strukturierte) Tabelle, indem der Kopfzeile abzurufen.

=ROW()-ROW(Table1[#Headers]) 

Das Ergebnis könnte zu vergleichen Bestimmung eines boolean Ergebnis zurückzugeben, wenn Sie in der ersten Zeile der Tabelle sind.

listobject_relativerow

2

Bedenken Sie:

Sub WhereIsTheActiveCell() 
    Dim EquivRange As Range, r As Range 
    Dim lo As ListObject 
    Dim nFirstRow As Long, nLastRow As Long 

    Set lo = ActiveSheet.ListObjects(1) 

    With lo 
     Set EquivRange = .DataBodyRange 
     nFirstRow = EquivRange.Row 
     nLastRow = EquivRange.Rows.Count + EquivRange.Row - 1 
     If ActiveCell.Row = nFirstRow Then 
      MsgBox "activecell is in the first data row of the table" 
     ElseIf ActiveCell.Row = nFirstRow - 1 Then 
      MsgBox "activecell is the the header row of the table" 
     End If 
    End With 
End Sub 
+0

Es ist eigentlich eine explizite [.HeaderRowRange Eigenschaft] (https://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.listobject.headerrowrange.aspx) in Zusätzlich zur [.DataBodyRange-Eigenschaft] (https://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.listobject.databodyrange.aspx) für ListObject-Tabellen. – Jeeped

+0

@Jeeped Vielen Dank und nochmals vielen Dank für Ihre Hilfe bei meiner gestrigen Frage. –

+0

Keine Sorgen. Die Javascript-Konvertierung sieht einfacher aus (und genauso zufällig), aber ich hatte Spaß damit zu spielen. – Jeeped

Verwandte Themen