复制没有单元格引用更改的公式

我想要打开一个工作簿,然后将一个列并排复制到另一个工作簿(每个文件彼此相邻的列)。
但是我不想改变单元格的引用(即如果正在复制的范围中的引用是C15:C17,我不希望它移动)。 我怎么能这样做?

目前我正在使用下面的代码:

Sub dane_wolne() 'Application.DisplayAlerts = False 'Application.ScreenUpdating = False Application.Calculation = xlManual Wiersz2 = 20 For i = 1 To Wiersz2 Workbooks.Open FileName:=Katalog & "U" & i & ".xlsx", ReadOnly:=True Range("D11:D210").Copy ThisWorkbook.Worksheets("Obliczenia").Range("E11:E210").Offset(0, i).PasteSpecial xlPasteFormulas Workbooks("U" & i & ".xlsx").Close Next i 'Application.DisplayAlerts = True 'Application.ScreenUpdating = True Application.Calculation = xlAutomatic End Sub 

Range.Formula属性

您可以使用:
ThisWorkbook.Worksheets("Obliczenia").Range("E11:E210").Offset(0, i).Formula = Range("D11:D210").Formula

在单独的步骤中复制格式。

closures主题提示

使ThisWorkbook.Worksheets("Obliczenia").Range("E11:E210")范围variables一次,然后适用.Offset使您的代码更干净,更快(纳秒:))

另外,将新打开的工作簿设置为variables以使其更加明确和可靠,这是一个很好的做法。 例如: Set SourceWB = Workbooks.Open FileName:=Katalog & "U" & i & ".xlsx", ReadOnly:=True (并不总是必要的)
然后使用SourceWB.Range("D11:D210")