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中的数据

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

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

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

 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应用程序的同一个实例中打开