Excel 为什么我的表格公式要花很长时间计算?
根据我的经验,每当我尝试将公式放入表列(在表列中的单元格上迭代)时,都需要很长时间。 在下面的代码中,我尝试进行Excel 为什么我的表格公式要花很长时间计算?,excel,vba,excel-formula,Excel,Vba,Excel Formula,根据我的经验,每当我尝试将公式放入表列(在表列中的单元格上迭代)时,都需要很长时间。 在下面的代码中,我尝试进行Iferror(vlookup)组合,这需要很长时间。我不能在这里用Vlookup编写直接公式,因为我引用的是另一个工作簿上的表格。我已经用过了 Application.Calculation = xlCalculationManual Application.ScreenUpdating = False 但是没有帮助 示例代码 For Each r In Table.List
Iferror(vlookup)
组合,这需要很长时间。我不能在这里用Vlookup编写直接公式,因为我引用的是另一个工作簿上的表格。我已经用过了
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
但是没有帮助
示例代码
For Each r In Table.ListColumns(Column_name).DataBodyRange
Set Z = Workbooks(workbookname).Worksheets(worksheetname).ListObjects(Table).ListColumns(Column_name).Range.Find(Valuefind, LookIn:=xlValues, LookAt:=xlWhole)
If Not Z Is Nothing Then
r.Offset(0, -1) = Z
Else
r.Offset(0, -1) = r
End If
Next r
在循环中使用
find
确实非常耗时。在你完全改变你的方法之前,这可能不会改变。您最好提供一个包含示例数据的示例,并告诉我们您实际想要做什么。也许你已经上错树了。循环大约进行了多少次迭代?200000乘以5列:(为什么Set Z=…
在循环中,因为它没有改变?这意味着100万次find
+100万次单元格读/写操作。你期望什么?当然这需要很长时间。请再次阅读我的第一条注释并提供更多信息。Set Z=实际上是find函数找到的与每个r对应的值r应该是表达式中的“valuefind”…我简化事物的错误方式