我在单元格中有一个公式:
=IF(INDEX(insurance_column_date,LOOKUP(2,1/(insurance_column_to=B59),ROW(insurance_column_to))-4)>0,INDEX(insurance_column_date,LOOKUP(2,1/(insurance_column_to=B59),ROW(insurance_column_to))-4),"No data")
在大多数情况下,这种方法都运行良好,但当无法找到查找值时,就会出现除以 0 的错误1/(insurance_column_to=B59)
。在本例中,我得到了 #N/A。还算合理。因此,我将 iferror 函数添加到单元格中:
=IFERROR(IF(INDEX(insurance_column_date,LOOKUP(2,1/(insurance_column_to=B59),ROW(insurance_column_to))-4)>0,INDEX(insurance_column_date,LOOKUP(2,1/(insurance_column_to=B59),ROW(insurance_column_to))-4),"No data"),"No data")
一切都很完美。我在相应的单元格中看到“无数据”。
但是,当我运行一个(完全不相关的)宏(它应该隐藏某些行)时,当它到达此行时,我现在收到运行时错误 1004:“应用程序定义或对象定义错误”:pWorksheetName = ActiveWorkbook.Names(pCounter).RefersToRange.Parent.Name
即使我将公式恢复为非 iferror() 语法,运行时错误仍然会出现。我读到过一些原因可能是公式会产生一个长度超过 911 个字符的字符串(在这种情况下不可能)或包含太多图例条目(不知道这些是什么)。我在两台不同的计算机上运行了宏并得到了相同的结果。
有人知道这是什么原因造成的或者如何解决吗?