等到公式计算完成后再复制到下一个工作表。 Excel VBA

时间:2014-11-13 07:14:48

标签: excel vba excel-vba wait

我将列从一张纸复制到另一张表时遇到问题。在工作表的源代码中,某些单元格与公式集成,这些公式仅在打开工作簿时计算。因此,我最终从一个工作簿复制到另一个工作簿的结果是初始值。我已经尝试了一些解决方案,但它无法正常工作。

我的代码:

Application.Calculation = xlCalculationAutomatic

Set wb = Application.Workbooks.Open(FilePath, ReadOnly:=True, UpdateLinks:=0)

    If Not Application.CalculationState = xlDone Then
        DoEvents
    End If

wb.Sheets("Unified").Columns("A").Copy activeWB.Sheets("report").Range("A1")

有关详细信息,请参阅源工作表中的单元格公式:

"=VLOOKUP(B649,'filesystem'!$A:$N,14,FALSE)"

我得到的结果是#REF!

1 个答案:

答案 0 :(得分:1)

您正在复制公式,而不是结果。尝试

Set SourceRange = Intersect(wb.Sheets("Unified").Columns("A"), wb.Sheets("Unified").UsedRange)
Set TargetRange = activeWB.Sheets("report").Range("A1").Resize(SourceRange.Rows.Count,1)
TargetRange.Value = SourceRange.Value