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

时间:2016-12-25 16:01:32

标签: excel vba excel-vba

我想打开一个工作簿,然后将一列并排复制到另一个工作簿(每个文件的列彼此相邻)。
但是我不想更改单元格引用(即,如果复制范围中的引用是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

1 个答案:

答案 0 :(得分:3)

Range.Formula属性

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

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

非主题提示

ThisWorkbook.Worksheets("Obliczenia").Range("E11:E210")范围变量设为一次,然后仅应用.Offset使代码更清晰,更快(纳秒:) :)

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