2015-01-05 50 views
0

在我的VSTO加載項代碼中,我有一個range.outlinelevel檢查我的工作表行。 根據documentation的大綱級別可能是1到8,並且類型爲Variant/Double在這種情況下,我的Excel Range.OutlineLevel爲null或System.DBNull?

  1. 但有時返回
  2. 等次range.OutlineLevel.GetType()返回的DBNull

是否有人知道爲什麼/如果是這種情況?


相關的職位: https://stackoverflow.com/questions/27778183/fastest-way-to-get-the-highest-range-outlinelevel-in-an-excel-worksheet

+0

鏈接到MSDN? [Range.OutlineLevel](http://msdn.microsoft.com/en-us/library/office/ff838455(v = office.15).aspx)是我看到的讀/寫變式。 –

+0

@ vba4all是的它是一個變種,但這不是我的問題。通常這個變體的VariantType是Double,但有時它不是(見上)。我想知道在哪些情況下... – jreichert

+0

與您剛剛閱讀的內容有關的MSDN鏈接。順便說一句。變體可以成爲任何東西。 –

回答

1

我仍然沒有答案(1)。 但今天我找到了答案(2):

range.OutlineLevel.GetType()返回DBNull,如果在給定範圍內有多個大綱級別。

見下面的調試器輸出:

  • 用於正常行標準OutlineLevel是1.0:

    range.OutlineLevel 1.0  dynamic {double} 
    
  • 對於具有不同OutlineLevels結果多行是:

    range.OutlineLevel {}  dynamic {System.DBNull}