VBA - 将工作表从一个工作簿复制到另一个工作簿(值,而不是公式)

时间:2015-08-06 17:25:40

标签: excel vba excel-vba

目前,我正在将工作表的值和格式复制到另一个工作簿中的工作表中:

workbooks("book1.xlsm").sheets(1).range(someRange).copy
with workbooks("book2.xlsm").sheets(1).range("A1")
    .pasteSpecial xlPasteValues
    .pasteSpecial xlPasteFormats
end with

我想使用类似的东西:

workbooks("book1.xlsm").sheet(1).copy after:=workbooks("book2.xlsm").sheet(1)

问题是book1.xlsm的表(1)中的一些单元格有公式。使用第二种方法拉取公式,结果值链接到book2.xlsm

中的数据

如何使用第二种方法,但是复制了值而不是公式?

如果不可能,除了我目前正在使用的第一种方法之外,还有哪些替代方案?

1 个答案:

答案 0 :(得分:0)

您可以在复制操作后断开链接:

Option Explicit

Sub copySheetValues()

    With Workbooks("Book2")

        Workbooks("Book1").Worksheets(1).Copy After:=.Worksheets(1)

        Application.Wait Now + TimeValue("0:00:01") 'built-in replacement for "Sleep"

        .BreakLink Name:=Workbooks("Book1.xlsm").FullName, Type:=xlLinkTypeExcelLinks

    End With

End Sub

注意:两个文件都需要在Excel应用程序的同一个实例中打开