Excel:replaceINDIRECT()来dynamic引用工作表

我有一个很多的INDIRECT()函数来从同一工作簿中的其他工作表拉取数据。 就像是

=INDIRECT(SheetName&"!A1") 

我已经意识到,INDIRECT()是一个易失性函数,所以每当任何工作簿发生任何改变时都会重新计算。 这使Excel非常缓慢,特别是在打开多个工作簿时。

有没有其他的function,可以取代INDIRECT()与dynamic表名称查找?

Lisa:您可以使用CHOOSE与查找表关联来代替INDIRECT。 请参阅我对这个问题的回答中的屏幕截图: 带有单元格引用的Excel Vlookup

此外,请查看我在Excel表格与普通数据的答案,在这里我提供了一些关于如何解决缓慢电子表格根本原因的信息。

  • 自动计算转(强烈不build议)
  • 构build一个UDF函数,默认情况下是非易失性的:

 Public Function IndirectNotVolatile(sheetName As String, sheetRange As Range) as Variant Set IndirectNotVolatile = Worksheets(sheetName).Range(sheetRange.Address) End Function