2016-04-09 23 views

cevap

2

basit bir formül oluşturmak için yerli çalışma sayfası işlevlerini kullanarak, başlık satırı çıkararak göreceli satır ListObject içindeki konumu (aka yapılandırılmış) tablosunu alabilirsiniz.

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

sonuç

tablonun ilk satırda ise belirleyici bir Boole sonuca dönmek göre olabilir.

listobject_relativerow

2

düşünün:

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

Orada aslında açık bir [.HeaderRowRange özelliği] şeklindedir (https://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.listobject.headerrowrange.aspx) 'de ListObject tabloları için [.DataBodyRange özelliği] (https://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.listobject.databodyrange.aspx). – Jeeped

+0

@Jeeped Dün sorusu ile ilgili yardımlarınız için teşekkür ederiz. –

+0

Endişeye gerek yok. Javascript dönüşümü daha basit (ve rasgele) gibi görünüyor ama onunla oynamayı çok eğlendim. – Jeeped

İlgili konular