2014-12-03 125 views
0

當我使用這個API:Range.AutoFilter時,它可以過濾整個工作表。即使我沒有指定標題,Excel也能夠猜測我的標題行。我的問題是:我該如何實現它?我無法弄清猜測標題行的規則。如何在Excel中過濾時識別標題行?

+1

你的意思是,你怎麼可以指定自動篩選範圍是多少?你想要達到什麼目的? – 2014-12-03 03:50:00

+0

如果我沒有在自動篩選範圍中設置標題,那麼當過濾數據範圍時,Excel會猜測哪一行可能是標題行。我想知道Excel如何實現它。 – PiKaChu 2014-12-03 05:16:17

+0

如果您必須通過查看標題行的工作表來進行猜測,您會如何做? Excel可能使用類似的方法。 – 2014-12-03 06:04:23

回答

0

我解決它通過自己yesterday.Here的主要規則:

  1. 如果不指定範圍進行過濾,Excel將找出哪一行 是具有與小區中的第一行value.We可以標記爲row1。

  2. 識別整行中是否有空單元格。 (Excel 會剪裁一個稱爲UsedRange的數據範圍,這意味着範圍 存在一個實數值。該列從UsedRange的第一個 行開始,最後一列是UsedRange的最後一列,可以用 檢查usedRange with API :sheet.UsedRange.select)。

  3. 如果在ROW1空白單元格,比較ROW2和ROW3,找出 他們是否 有format.If不一樣的電池,標題行是2行,否則, 標題行是ROW1。

  4. 如果沒有在任何ROW1空白單元格, 比較ROW1和2行之間的單元格的格式。這裏是 僞代碼:

打字英語太難了,寫代碼更容易....

if (Row1's cell format == Row2's cell format) 
{ 
     if (row2's cell format == row3's cell format) 
       header_row = row1; 
     else 
       header_row = row2; 
} 
else 
{ 
     header_row = row1; 
}