Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel:替换间接()以动态引用工作表_Excel_Excel Formula - Fatal编程技术网

Excel:替换间接()以动态引用工作表

Excel:替换间接()以动态引用工作表,excel,excel-formula,Excel,Excel Formula,我有一个包含很多间接()函数的工作表,用于从同一工作簿中的其他工作表中提取数据。差不多 =INDIRECT(SheetName&"!A1") 我意识到,INDIRECT()是一个不稳定的函数,因此每当工作簿中发生任何更改时,它都会重新计算。这使得Excel非常慢,尤其是当打开多个工作簿时 是否有其他函数可以用动态工作表名称替换间接()查找? 自动计算回合(强烈不建议) 构建一个默认为非易失性的UDF函数: 丽莎:你可以在查阅表格中使用CHOOSE来代替间接的。请参见我回答此问题时的

我有一个包含很多间接()函数的工作表,用于从同一工作簿中的其他工作表中提取数据。差不多

=INDIRECT(SheetName&"!A1")
我意识到,INDIRECT()是一个不稳定的函数,因此每当工作簿中发生任何更改时,它都会重新计算。这使得Excel非常慢,尤其是当打开多个工作簿时

是否有其他函数可以用动态工作表名称替换间接()查找?

  • 自动计算回合(强烈不建议)
  • 构建一个默认为非易失性的UDF函数:


丽莎:你可以在查阅表格中使用CHOOSE来代替间接的。请参见我回答此问题时的屏幕截图:


而且,查看我的答案,我在这里提供了一些关于如何解决电子表格速度慢的根本原因的信息。

您是否考虑过关闭自动计算?您是否尝试过
选择
功能?选择是一个很好的替代方法,只要您只有少量工作表可供选择:它是在修正了一组备选方案。@CharlesWilliams感谢Charles,但我不确定它如何与不同的工作表一起工作。我应该在参数中设置不同的范围吗?请您写一个例子好吗?请注意,慢度不仅是由Volatile函数重新计算引起的,而且是由计算链中这些Volatile函数下游的任何函数(Volatile或其他)引起的。基本上,易失性函数下游的任何函数实际上都会成为易失性函数本身。您的工作簿中可能只有一个volatile函数,但如果该函数最终提供了工作簿的大部分内容,则在您执行任何操作时,几乎整个工作簿都会重新计算,因为只有一个volatile函数,所以Excel中的每个内置函数都不是volatile函数:除了明显的RAND之外,只有少数函数是间接函数和偏移函数etc@CharlesWilliams-是的,我正在考虑其他问题。是否应该设置为IndirectNotVolatile=工作表(sheetName).Range(sheetRange.Address)@jeeped-我几小时前测试过它,没有
集合
,它运行得很好。不要说得太精细,但你的代码适用于OP的简单示例公式,因为示例要求单元格的值,而你正在返回range对象的默认属性(例如.value)。如果使用IndirectNotVolatile定义VLOOKUP的查找范围(通常要求间接查找),则.Value不足;必须返回工作表实际执行的范围对象。如果将UDF设置为范围对象,则两种情况都可以满足。
Public Function IndirectNotVolatile(sheetName As String, sheetRange As Range) as Variant
    Set IndirectNotVolatile = Worksheets(sheetName).Range(sheetRange.Address)
End Function