2017-06-04 169 views
0

我有一個返回未分配一些值的列表(陣列)但是,一旦所有的值被分配列表返回#N動態命名區域/ AVBA動態命名範圍爲列表框行來源錯誤

式(陣列):

= INDEX(EquipTable [裝備],MATCH(0,EquipTable [標誌],0),1):INDEX(EquipTable [裝備], MATCH(0,EquipTable [標誌],0 )+ COUNTIF(EquipTable [Flag],0)-1,1)

問題是我正在使用這個Ranged na med作爲Listbox.RowSource,我找不到一種方法來檢查命名範圍的值,甚至檢查它是否返回錯誤。

我用:

Application.WorksheetFunction.IsError(ActiveWorkbook.Names("UnassignedEquipment"))

但它始終返回false

我也用過:

IsEmpty(ActiveWorkbook.Names("UnassignedEquipment"))

IsError(ActiveWorkbook.Names("UnassignedEquipment"))

+0

我有一個窗體有2個列表框,「未分配的設備」被添加到這些列表框中的一個,重要的是讓用戶知道還有尚未分配的設備,用於分配和未分配信息的信息表「閥門表」。 – Tima

回答

1

一種方法是在用於命名範圍的公式中使用IFERROR,以便如果命名範圍不返回任何內容,則它指向特定範圍/單元格。

=IFERROR(INDEX(EquipTable[Equip], MATCH(0,EquipTable[Flag],0), 1):INDEX(EquipTable[Equip], MATCH(0,EquipTable[Flag],0)+COUNTIF(EquipTable[Flag],0)-1, 1),A1) 

這裏A1是,如果沒有一個有效的範圍不是由公式返回的命名範圍將涉及的單元格。按照您的要求更改公式中的A1。