如何从行复制公式并将其作为公式粘贴到使用Array的多行中

时间:2019-07-29 23:44:10

标签: excel vba

我想从一行复制公式并将其粘贴到行数,具体取决于从源文件复制的行数。我将公式从一行复制到数组中,并使用for循环将相同的数组分配给所有下一行。我要么将值粘贴或将相同的公式(例如= B1 + c1)粘贴到所有行中,而不是像= B99 + C99

到目前为止,我尝试将.formula分配给对象,然后从数组分配回FormulaArray-这是对公式应用{}并在每行中粘贴相同的公式。有超过200K的行。 -公式到数组和数组到公式-这是失败的 -value表示数组,而array表示值-显然,这仅给出值。

vArray2 = Wb1.Worksheets("Gains Data").Range("AZ2:CJ2").Formula 
Dim i1 As Long
For i1 = Row2 To Row3
  Wb1.Sheets("Gains Data").Range(Cells(i1, Col1), Cells(i1, 
  Col2)).FormulaArray = vArray2 
Next i1

如何保留公式,但仍将公式应用于增量单元格值。而不是让= B2 + C2进入所有行,我要= B10100 + C10100

1 个答案:

答案 0 :(得分:0)

.FormulaArray用于数组公式,因此{}。您需要.Formula,并且不需要循环。您只需一行就可以将公式写到整个范围,由于您有相对引用,因此Excel会更新行引用。

还请注意,可以使用With...End With对此进行简化,并注意每个.实例前面的句点Cells

With Wb1.Worksheets("Gains Data")
    vArray2 = .Range("AZ2:CJ2").Formula
    .Range(.Cells(Row2, Col1), .Cells(Row3, Col2)).Formula = vArray2
End With