2017-06-04 167 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。