使用VBA将Excel公式从一个工作簿复制到另一个工作簿并维护已存在的名称

时间:2013-08-22 14:43:45

标签: excel-vba vba excel

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

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

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

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

由于工作表有很多公式,因此代码也相当慢。因此,如果你能提出更快的方法,我也会感激。

1 个答案:

答案 0 :(得分: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

未经测试适用于您的场景,但这是摆脱许多弹出窗口的好方法。