0

我正在使用此代码将公式从一个工作簿复制到另一个工作簿。

    For Each r In templateWbk.Sheets("BSC").Cells.SpecialCells(xlCellTypeFormulas)
        addressRange = r.Address
        r.Copy instanceWbk.Sheets("BSC").Range(addressRange)
    Next

有时我会弹出一个弹出窗口,上面写着“名称“xxxxx”已经存在。单击“是”以使用该版本的名称,或单击“否”以重命名您正在移动或复制的“xxxxx”版本。

我不希望出现此弹出窗口。我总是希望复制单元格的确切内容,仅此而已,换句话说,我想使用名称的现有版本。这是我需要帮助的主要事情。

代码也相当慢,因为工作表有很多公式。因此,如果您能提出一种更快的方法,我也将不胜感激。

4

1 回答 1

1

您是否可以简单地将一个工作簿中的值设置为等于另一个工作簿中的值?这将不断消除“复制”方法:

For Each r In templateWbk.Sheets("BSC").Cells.SpecialCells(xlCellTypeFormulas)
    instanceWbk.Sheets("BSC").Range(r.Address).Formula _
    = templateWbk.Sheets("BSC").Range(r.Address).Formula
Next

此外,您可以尝试更改 DisplayAlerts 属性:

Application.DisplayAlerts = False

未经测试您的方案,但摆脱许多弹出窗口的好方法。

于 2013-08-22T14:55:50.847 回答