我有一张包含大量INDIRECT()函数的工作表,用于从同一工作簿中的其他工作表中提取数据。像
这样的东西=INDIRECT(SheetName&"!A1")
我已经意识到INDIRECT()是一个易失性函数,因此每次在任何工作簿中进行任何更改时它都会重新计算。这使得Excel非常慢,特别是在打开多个工作簿时。
是否还有其他函数可以替换INDIRECT()以使用动态工作表名称进行查找?
答案 0 :(得分:1)
Public Function IndirectNotVolatile(sheetName As String, sheetRange As Range) as Variant
Set IndirectNotVolatile = Worksheets(sheetName).Range(sheetRange.Address)
End Function
答案 1 :(得分:0)
Lisa:您可以将CHOOSE与查找表结合使用以替换INDIRECT。请参阅我对此问题的回答中的屏幕截图:Excel Vlookup with cell reference
另外,请在Excel tables vs plain data查看我的答案,在那里我提供一些有关如何解决慢速电子表格根本原因的信息。