将Excel公式复制到不同的工作簿,而不参考

在工作簿1中,在工作表“新build表1”中的单元格AG9中具有以下公式

=COUNTIF('New Table2'!B:B;"D")

它应该计算“新表2”列B中的所有D。使用VBA我想将整个工作表“新表1”复制到不同的工作簿(Workbook2),但是当我这样做时,Workbook2中复制的公式更改为

=COUNTIF('C:\Users\a.hopf\Desktop\[Workbook1.xlsx]New Table2 '!B:B;"D")

如何防止公式引用原始工作簿? Workbook2中的公式还应引用Workbook2中的新表2。 我尝试使用$来创build绝对引用,但是=COUNTIF($'New Table2'!$B:$B;"D")不起作用。

我知道我可以使用VBA将公式写入Workbook2,但我更愿意将它与Workbook1中的工作表一起复制。

尝试像这样复制工作表:

 Option Explicit Sub copyFormulasWithoutExternalLinks() Dim r1 As Range, r2 As Range Set r1 = Workbooks("Book1.xlsm").Worksheets(1).UsedRange Set r2 = Workbooks("Book2.xlsm").Worksheets(1).UsedRange 'Range("G1") in r1: =COUNTIF('New Table2'!B:B/"D") r1.Copy r2 'Range("G1") in r2: =COUNTIF('[Book1.xlsm]New Table2'!B:B/"D") '------------------------------------------------------------------------------------- Set r2 = Workbooks("Book2.xlsm").Sheets(1).UsedRange 'reset used range in Book2 Application.DisplayAlerts = False r2.Formula = r1.Formula 'Range("G1") in r2: =COUNTIF('New Table2'!B:B/"D") Application.DisplayAlerts = True '(all formulas in Book2 will be invalid if 'New Table2' sheet is missing) End Sub