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”…我简化事物的错误方式