我想从一行复制公式并将其粘贴到行数,具体取决于从源文件复制的行数。我将公式从一行复制到数组中,并使用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
答案 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