VBA 动态命名范围作为列表框行源错误

VBA Dynamic Named Range as Listbox RowSource Error

我有一个动态命名范围 returns 一些未分配的值的列表(数组)但是一旦所有值都分配了列表 returns #N/A

公式(数组):

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

问题是我正在使用这个名为 Listbox.RowSource 的 Ranged,但我无法找到一种方法来检查命名范围的值,甚至无法检查它是否有 returns 错误与否。

我用过:

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

但它总是返回 False

我还用过:

IsEmpty(ActiveWorkbook.Names("UnassignedEquipment"))

IsError(ActiveWorkbook.Names("UnassignedEquipment"))

一种方法是在用于命名范围的公式中使用 IFERROR,这样如果命名范围没有 return 任何东西,它指的是特定的 range/cell.

=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 是命名范围将引用的单元格,如果有效范围未被公式 return 编辑。根据您的要求更改公式中的 A1。